diff options
author | Alyssa Ross <hi@alyssa.is> | 2019-05-24 18:25:09 +0000 |
---|---|---|
committer | Alyssa Ross <hi@alyssa.is> | 2019-05-24 18:25:09 +0000 |
commit | cb026a2bd22d2656d88a7883e44caa31402d7646 (patch) | |
tree | 804c389adfe6dc6deb38dfd90167b03b4f828bce /nixpkgs/pkgs/applications | |
parent | 5781972383d0382dc9353ac720a5d751ca17cd05 (diff) | |
parent | 650a295621b27c4ebe0fa64a63fd25323e64deb3 (diff) | |
download | nixlib-cb026a2bd22d2656d88a7883e44caa31402d7646.tar nixlib-cb026a2bd22d2656d88a7883e44caa31402d7646.tar.gz nixlib-cb026a2bd22d2656d88a7883e44caa31402d7646.tar.bz2 nixlib-cb026a2bd22d2656d88a7883e44caa31402d7646.tar.lz nixlib-cb026a2bd22d2656d88a7883e44caa31402d7646.tar.xz nixlib-cb026a2bd22d2656d88a7883e44caa31402d7646.tar.zst nixlib-cb026a2bd22d2656d88a7883e44caa31402d7646.zip |
Merge commit '650a295621b27c4ebe0fa64a63fd25323e64deb3'
Diffstat (limited to 'nixpkgs/pkgs/applications')
53 files changed, 1640 insertions, 188 deletions
diff --git a/nixpkgs/pkgs/applications/altcoins/parity/beta.nix b/nixpkgs/pkgs/applications/altcoins/parity/beta.nix index b844c441bbc0..ed3f691122ce 100644 --- a/nixpkgs/pkgs/applications/altcoins/parity/beta.nix +++ b/nixpkgs/pkgs/applications/altcoins/parity/beta.nix @@ -1,6 +1,6 @@ let - version = "2.5.0"; - sha256 = "1dsckybjg2cvrvcs1bya03xymcm0whfxcb1v0vljn5pghyazgvhx"; - cargoSha256 = "0z7dmzpqg0qnkga7r4ykwrvz8ds1k9ik7cx58h2vnmhrhrddvizr"; + version = "2.5.1"; + sha256 = "0nnrgc2qyqqld3znjigryqpg5jaqh3jnmin4a334dbr4jw50dz3d"; + cargoSha256 = "184vfhsalk5dims3k13zrsv4lmm45a7nm3r0b84g72q7hhbl8pkf"; in import ./parity.nix { inherit version sha256 cargoSha256; } diff --git a/nixpkgs/pkgs/applications/altcoins/parity/default.nix b/nixpkgs/pkgs/applications/altcoins/parity/default.nix index d01ef9ad059e..18e3dd4129e4 100644 --- a/nixpkgs/pkgs/applications/altcoins/parity/default.nix +++ b/nixpkgs/pkgs/applications/altcoins/parity/default.nix @@ -1,6 +1,6 @@ let - version = "2.4.5"; - sha256 = "02ajwjw6cz86x6zybvw5l0pgv7r370hickjv9ja141w7bhl70q3v"; - cargoSha256 = "1n218c43gf200xlb3q03bd6w4kas0jsqx6ciw9s6h7h18wwibvf1"; + version = "2.4.6"; + sha256 = "0vfq1pyd92n60h9gimn4d5j56xanvl43sgxk9h2kb16amy0mmh3z"; + cargoSha256 = "04gi9vddahq1q207f83n3wriwdjnmmnby6mq4crdh7yx1p4b26m9"; in import ./parity.nix { inherit version sha256 cargoSha256; } diff --git a/nixpkgs/pkgs/applications/audio/audacity/default.nix b/nixpkgs/pkgs/applications/audio/audacity/default.nix index 3b12ffe3463f..b685fda7683d 100644 --- a/nixpkgs/pkgs/applications/audio/audacity/default.nix +++ b/nixpkgs/pkgs/applications/audio/audacity/default.nix @@ -7,12 +7,12 @@ with stdenv.lib; stdenv.mkDerivation rec { - version = "2.3.1"; + version = "2.3.2"; name = "audacity-${version}"; src = fetchurl { url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz"; - sha256 = "089kz6hgqg0caz33sps19wpkfnza5gf7brdq2p9y6bnwkipw1w9f"; + sha256 = "0cf7fr1qhyyylj8g9ax1rq5sb887bcv5b8d7hwlcfwamzxqpliyc"; }; preConfigure = /* we prefer system-wide libs */ '' diff --git a/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix b/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix index 04b1dafe7e84..404c9cc825e9 100644 --- a/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix +++ b/nixpkgs/pkgs/applications/audio/fluidsynth/default.nix @@ -11,8 +11,8 @@ let sha256 = "0n75jq3xgq46hfmjkaaxz3gic77shs4fzajq40c8gk043i84xbdh"; }; "2" = { - fluidsynthVersion = "2.0.4"; - sha256 = "1v2vji02fbrjgypwb4fw2r90hnfwfbfh3d24j8vjwlbqxhxp16s0"; + fluidsynthVersion = "2.0.5"; + sha256 = "0rv0apxbj0cgm8f8sqf5xr6kdi4q58ph92ip6cg716ha0ca5lr8y"; }; }; in diff --git a/nixpkgs/pkgs/applications/audio/moc/default.nix b/nixpkgs/pkgs/applications/audio/moc/default.nix index ea83a1012ebb..3ed330cc7437 100644 --- a/nixpkgs/pkgs/applications/audio/moc/default.nix +++ b/nixpkgs/pkgs/applications/audio/moc/default.nix @@ -1,9 +1,35 @@ -{ stdenv, fetchurl, ncurses, pkgconfig, alsaLib, flac, libmad, speex, ffmpeg -, libvorbis, libmpc, libsndfile, libjack2, db, libmodplug, timidity, libid3tag -, libtool +{ stdenv, fetchurl, pkgconfig +, ncurses, db , popt, libtool +# Sound sub-systems +, alsaSupport ? true, alsaLib +, pulseSupport ? true, libpulseaudio, autoreconfHook +, jackSupport ? true, libjack2 +, ossSupport ? true +# Audio formats +, aacSupport ? true, faad2, libid3tag +, flacSupport ? true, flac +, midiSupport ? true, timidity +, modplugSupport ? true, libmodplug +, mp3Support ? true, libmad +, musepackSupport ? true, libmpc, libmpcdec, taglib +, vorbisSupport ? true, libvorbis +, speexSupport ? true, speex +, ffmpegSupport ? true, ffmpeg +, sndfileSupport ? true, libsndfile +, wavpackSupport ? true, wavpack +# Misc +, withffmpeg4 ? false, ffmpeg_4 +, curlSupport ? true, curl +, samplerateSupport ? true, libsamplerate +, withDebug ? false }: -stdenv.mkDerivation rec { +let + opt = stdenv.lib.optional; + mkFlag = c: f: if c then "--with-${f}" else "--without-${f}"; + +in stdenv.mkDerivation rec { + name = "moc-${version}"; version = "2.5.2"; @@ -12,18 +38,67 @@ stdenv.mkDerivation rec { sha256 = "026v977kwb0wbmlmf6mnik328plxg8wykfx9ryvqhirac0aq39pk"; }; - nativeBuildInputs = [ pkgconfig ]; + patches = [] + ++ opt withffmpeg4 ./moc-ffmpeg4.patch + ++ opt pulseSupport ./pulseaudio.patch; + + nativeBuildInputs = [ pkgconfig ] + ++ opt pulseSupport autoreconfHook; + + buildInputs = [ ncurses db popt libtool ] + # Sound sub-systems + ++ opt alsaSupport alsaLib + ++ opt pulseSupport libpulseaudio + ++ opt jackSupport libjack2 + # Audio formats + ++ opt (aacSupport || mp3Support) libid3tag + ++ opt aacSupport faad2 + ++ opt flacSupport flac + ++ opt midiSupport timidity + ++ opt modplugSupport libmodplug + ++ opt mp3Support libmad + ++ opt musepackSupport [ libmpc libmpcdec taglib ] + ++ opt vorbisSupport libvorbis + ++ opt speexSupport speex + ++ opt (ffmpegSupport && !withffmpeg4) ffmpeg + ++ opt (ffmpegSupport && withffmpeg4) ffmpeg_4 + ++ opt sndfileSupport libsndfile + ++ opt wavpackSupport wavpack + # Misc + ++ opt curlSupport curl + ++ opt samplerateSupport libsamplerate; - buildInputs = [ - ncurses alsaLib flac libmad speex ffmpeg libvorbis libmpc libsndfile libjack2 - db libmodplug timidity libid3tag libtool + configureFlags = [ + # Sound sub-systems + (mkFlag alsaSupport "alsa") + (mkFlag pulseSupport "pulse") + (mkFlag jackSupport "jack") + (mkFlag ossSupport "oss") + # Audio formats + (mkFlag aacSupport "aac") + (mkFlag flacSupport "flac") + (mkFlag midiSupport "timidity") + (mkFlag modplugSupport "modplug") + (mkFlag mp3Support "mp3") + (mkFlag musepackSupport "musepack") + (mkFlag vorbisSupport "vorbis") + (mkFlag speexSupport "speex") + (mkFlag ffmpegSupport "ffmpeg") + (mkFlag sndfileSupport "sndfile") + (mkFlag wavpackSupport "wavpack") + # Misc + (mkFlag curlSupport "curl") + (mkFlag samplerateSupport "samplerate") + ("--enable-debug=" + (if withDebug then "yes" else "no")) + "--disable-cache" + "--without-rcc" ]; meta = with stdenv.lib; { description = "An ncurses console audio player designed to be powerful and easy to use"; homepage = http://moc.daper.net/; license = licenses.gpl2; - maintainers = with maintainers; [ pSub jagajaga ]; + maintainers = with maintainers; [ aethelz pSub jagajaga ]; platforms = platforms.linux; }; } diff --git a/nixpkgs/pkgs/applications/audio/moc/moc-ffmpeg4.patch b/nixpkgs/pkgs/applications/audio/moc/moc-ffmpeg4.patch new file mode 100644 index 000000000000..7499f9c539bc --- /dev/null +++ b/nixpkgs/pkgs/applications/audio/moc/moc-ffmpeg4.patch @@ -0,0 +1,33 @@ +Index: decoder_plugins/ffmpeg/ffmpeg.c +=================================================================== +--- /decoder_plugins/ffmpeg/ffmpeg.c (revisiĆ³n: 2963) ++++ /decoder_plugins/ffmpeg/ffmpeg.c (copia de trabajo) +@@ -697,7 +697,7 @@ + * FFmpeg/LibAV in use. For some versions this will be caught in + * *_find_stream_info() above and misreported as an unfound codec + * parameters error. */ +- if (data->codec->capabilities & CODEC_CAP_EXPERIMENTAL) { ++ if (data->codec->capabilities & AV_CODEC_CAP_EXPERIMENTAL) { + decoder_error (&data->error, ERROR_FATAL, 0, + "The codec is experimental and may damage MOC: %s", + data->codec->name); +@@ -705,8 +705,8 @@ + } + + set_downmixing (data); +- if (data->codec->capabilities & CODEC_CAP_TRUNCATED) +- data->enc->flags |= CODEC_FLAG_TRUNCATED; ++ if (data->codec->capabilities & AV_CODEC_CAP_TRUNCATED) ++ data->enc->flags |= AV_CODEC_FLAG_TRUNCATED; + + if (avcodec_open2 (data->enc, data->codec, NULL) < 0) + { +@@ -725,7 +725,7 @@ + + data->sample_width = sfmt_Bps (data->fmt); + +- if (data->codec->capabilities & CODEC_CAP_DELAY) ++ if (data->codec->capabilities & AV_CODEC_CAP_DELAY) + data->delay = true; + data->seek_broken = is_seek_broken (data); + data->timing_broken = is_timing_broken (data->ic); diff --git a/nixpkgs/pkgs/applications/audio/moc/pulseaudio.patch b/nixpkgs/pkgs/applications/audio/moc/pulseaudio.patch new file mode 100644 index 000000000000..37d81dddf2bc --- /dev/null +++ b/nixpkgs/pkgs/applications/audio/moc/pulseaudio.patch @@ -0,0 +1,800 @@ +diff --git a/audio.c b/audio.c +--- a/audio.c ++++ b/audio.c +@@ -32,6 +32,9 @@ + #include "log.h" + #include "lists.h" + ++#ifdef HAVE_PULSE ++# include "pulse.h" ++#endif + #ifdef HAVE_OSS + # include "oss.h" + #endif +@@ -893,6 +896,15 @@ + } + #endif + ++#ifdef HAVE_PULSE ++ if (!strcasecmp(name, "pulseaudio")) { ++ pulse_funcs (funcs); ++ printf ("Trying PulseAudio...\n"); ++ if (funcs->init(&hw_caps)) ++ return; ++ } ++#endif ++ + #ifdef HAVE_OSS + if (!strcasecmp(name, "oss")) { + oss_funcs (funcs); +diff --git a/configure.in b/configure.in +--- a/configure.in ++++ b/configure.in +@@ -162,6 +162,21 @@ + AC_MSG_ERROR([BerkeleyDB (libdb) not found.])) + fi + ++AC_ARG_WITH(pulse, AS_HELP_STRING(--without-pulse, ++ Compile without PulseAudio support.)) ++ ++if test "x$with_pulse" != "xno" ++then ++ PKG_CHECK_MODULES(PULSE, [libpulse], ++ [SOUND_DRIVERS="$SOUND_DRIVERS PULSE" ++ EXTRA_OBJS="$EXTRA_OBJS pulse.o" ++ AC_DEFINE([HAVE_PULSE], 1, [Define if you have PulseAudio.]) ++ EXTRA_LIBS="$EXTRA_LIBS $PULSE_LIBS" ++ CFLAGS="$CFLAGS $PULSE_CFLAGS"], ++ [true]) ++fi ++ ++ + AC_ARG_WITH(oss, AS_HELP_STRING([--without-oss], + [Compile without OSS support])) + +diff --git a/options.c b/options.c +--- a/options.c ++++ b/options.c +@@ -572,10 +572,11 @@ + + #ifdef OPENBSD + add_list ("SoundDriver", "SNDIO:JACK:OSS", +- CHECK_DISCRETE(5), "SNDIO", "Jack", "ALSA", "OSS", "null"); ++ CHECK_DISCRETE(5), "SNDIO", "PulseAudio", "Jack", "ALSA", "OSS", "null"); ++ + #else + add_list ("SoundDriver", "Jack:ALSA:OSS", +- CHECK_DISCRETE(5), "SNDIO", "Jack", "ALSA", "OSS", "null"); ++ CHECK_DISCRETE(5), "SNDIO", "PulseAudio", "Jack", "ALSA", "OSS", "null"); + #endif + + add_str ("JackClientName", "moc", CHECK_NONE); +diff --git a/pulse.c b/pulse.c +new file mode 100644 +--- /dev/null ++++ b/pulse.c +@@ -0,0 +1,705 @@ ++/* ++ * MOC - music on console ++ * Copyright (C) 2011 Marien Zwart <marienz@marienz.net> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ */ ++ ++/* PulseAudio backend. ++ * ++ * FEATURES: ++ * ++ * Does not autostart a PulseAudio server, but uses an already-started ++ * one, which should be better than alsa-through-pulse. ++ * ++ * Supports control of either our stream's or our entire sink's volume ++ * while we are actually playing. Volume control while paused is ++ * intentionally unsupported: the PulseAudio documentation strongly ++ * suggests not passing in an initial volume when creating a stream ++ * (allowing the server to track this instead), and we do not know ++ * which sink to control if we do not have a stream open. ++ * ++ * IMPLEMENTATION: ++ * ++ * Most client-side (resource allocation) errors are fatal. Failure to ++ * create a server context or stream is not fatal (and MOC should cope ++ * with these failures too), but server communication failures later ++ * on are currently not handled (MOC has no great way for us to tell ++ * it we no longer work, and I am not sure if attempting to reconnect ++ * is worth it or even a good idea). ++ * ++ * The pulse "simple" API is too simple: it combines connecting to the ++ * server and opening a stream into one operation, while I want to ++ * connect to the server when MOC starts (and fall back to a different ++ * backend if there is no server), and I cannot open a stream at that ++ * time since I do not know the audio format yet. ++ * ++ * PulseAudio strongly recommends we use a high-latency connection, ++ * which the MOC frontend code might not expect from its audio ++ * backend. We'll see. ++ * ++ * We map MOC's percentage volumes linearly to pulse's PA_VOLUME_MUTED ++ * (0) .. PA_VOLUME_NORM range. This is what the PulseAudio docs recommend ++ * ( http://pulseaudio.org/wiki/WritingVolumeControlUIs ). It does mean ++ * PulseAudio volumes above PA_VOLUME_NORM do not work well with MOC. ++ * ++ * Comments in audio.h claim "All functions are executed only by one ++ * thread" (referring to the function in the hw_funcs struct). This is ++ * a blatant lie. Most of them are invoked off the "output buffer" ++ * thread (out_buf.c) but at least the "playing" thread (audio.c) ++ * calls audio_close which calls our close function. We can mostly ++ * ignore this problem because we serialize on the pulseaudio threaded ++ * mainloop lock. But it does mean that functions that are normally ++ * only called between open and close (like reset) are sometimes ++ * called without us having a stream. Bulletproof, therefore: ++ * serialize setting/unsetting our global stream using the threaded ++ * mainloop lock, and check for that stream being non-null before ++ * using it. ++ * ++ * I am not convinced there are no further dragons lurking here: can ++ * the "playing" thread(s) close and reopen our output stream while ++ * the "output buffer" thread is sending output there? We can bail if ++ * our stream is simply closed, but we do not currently detect it ++ * being reopened and no longer using the same sample format, which ++ * might have interesting results... ++ * ++ * Also, read_mixer is called from the main server thread (handling ++ * commands). This crashed me once when it got at a stream that was in ++ * the "creating" state and therefore did not have a valid stream ++ * index yet. Fixed by only assigning to the stream global when the ++ * stream is valid. ++ */ ++ ++#ifdef HAVE_CONFIG_H ++# include "config.h" ++#endif ++ ++#define DEBUG ++ ++#include <pulse/pulseaudio.h> ++#include "common.h" ++#include "log.h" ++#include "audio.h" ++ ++ ++/* The pulse mainloop and context are initialized in pulse_init and ++ * destroyed in pulse_shutdown. ++ */ ++static pa_threaded_mainloop *mainloop = NULL; ++static pa_context *context = NULL; ++ ++/* The stream is initialized in pulse_open and destroyed in pulse_close. */ ++static pa_stream *stream = NULL; ++ ++static int showing_sink_volume = 0; ++ ++/* Callbacks that do nothing but wake up the mainloop. */ ++ ++static void context_state_callback (pa_context *context ATTR_UNUSED, ++ void *userdata) ++{ ++ pa_threaded_mainloop *m = userdata; ++ ++ pa_threaded_mainloop_signal (m, 0); ++} ++ ++static void stream_state_callback (pa_stream *stream ATTR_UNUSED, ++ void *userdata) ++{ ++ pa_threaded_mainloop *m = userdata; ++ ++ pa_threaded_mainloop_signal (m, 0); ++} ++ ++static void stream_write_callback (pa_stream *stream ATTR_UNUSED, ++ size_t nbytes ATTR_UNUSED, void *userdata) ++{ ++ pa_threaded_mainloop *m = userdata; ++ ++ pa_threaded_mainloop_signal (m, 0); ++} ++ ++/* Initialize pulse mainloop and context. Failure to connect to the ++ * pulse daemon is nonfatal, everything else is fatal (as it ++ * presumably means we ran out of resources). ++ */ ++static int pulse_init (struct output_driver_caps *caps) ++{ ++ pa_context *c; ++ pa_proplist *proplist; ++ ++ assert (!mainloop); ++ assert (!context); ++ ++ mainloop = pa_threaded_mainloop_new (); ++ if (!mainloop) ++ fatal ("Cannot create PulseAudio mainloop"); ++ ++ if (pa_threaded_mainloop_start (mainloop) < 0) ++ fatal ("Cannot start PulseAudio mainloop"); ++ ++ /* TODO: possibly add more props. ++ * ++ * There are a few we could set in proplist.h but nothing I ++ * expect to be very useful. ++ * ++ * http://pulseaudio.org/wiki/ApplicationProperties recommends ++ * setting at least application.name, icon.name and media.role. ++ * ++ * No need to set application.name here, the name passed to ++ * pa_context_new_with_proplist overrides it. ++ */ ++ proplist = pa_proplist_new (); ++ if (!proplist) ++ fatal ("Cannot allocate PulseAudio proplist"); ++ ++ pa_proplist_sets (proplist, ++ PA_PROP_APPLICATION_VERSION, PACKAGE_VERSION); ++ pa_proplist_sets (proplist, PA_PROP_MEDIA_ROLE, "music"); ++ pa_proplist_sets (proplist, PA_PROP_APPLICATION_ID, "net.daper.moc"); ++ ++ pa_threaded_mainloop_lock (mainloop); ++ ++ c = pa_context_new_with_proplist ( ++ pa_threaded_mainloop_get_api (mainloop), ++ PACKAGE_NAME, proplist); ++ pa_proplist_free (proplist); ++ ++ if (!c) ++ fatal ("Cannot allocate PulseAudio context"); ++ ++ pa_context_set_state_callback (c, context_state_callback, mainloop); ++ ++ /* Ignore return value, rely on state being set properly */ ++ pa_context_connect (c, NULL, PA_CONTEXT_NOAUTOSPAWN, NULL); ++ ++ while (1) { ++ pa_context_state_t state = pa_context_get_state (c); ++ ++ if (state == PA_CONTEXT_READY) ++ break; ++ ++ if (!PA_CONTEXT_IS_GOOD (state)) { ++ error ("PulseAudio connection failed: %s", ++ pa_strerror (pa_context_errno (c))); ++ ++ goto unlock_and_fail; ++ } ++ ++ debug ("waiting for context to become ready..."); ++ pa_threaded_mainloop_wait (mainloop); ++ } ++ ++ /* Only set the global now that the context is actually ready */ ++ context = c; ++ ++ pa_threaded_mainloop_unlock (mainloop); ++ ++ /* We just make up the hardware capabilities, since pulse is ++ * supposed to be abstracting these out. Assume pulse will ++ * deal with anything we want to throw at it, and that we will ++ * only want mono or stereo audio. ++ */ ++ caps->min_channels = 1; ++ caps->max_channels = 2; ++ caps->formats = (SFMT_S8 | SFMT_S16 | SFMT_S32 | ++ SFMT_FLOAT | SFMT_BE | SFMT_LE); ++ ++ return 1; ++ ++unlock_and_fail: ++ ++ pa_context_unref (c); ++ ++ pa_threaded_mainloop_unlock (mainloop); ++ ++ pa_threaded_mainloop_stop (mainloop); ++ pa_threaded_mainloop_free (mainloop); ++ mainloop = NULL; ++ ++ return 0; ++} ++ ++static void pulse_shutdown (void) ++{ ++ pa_threaded_mainloop_lock (mainloop); ++ ++ pa_context_disconnect (context); ++ pa_context_unref (context); ++ context = NULL; ++ ++ pa_threaded_mainloop_unlock (mainloop); ++ ++ pa_threaded_mainloop_stop (mainloop); ++ pa_threaded_mainloop_free (mainloop); ++ mainloop = NULL; ++} ++ ++static int pulse_open (struct sound_params *sound_params) ++{ ++ pa_sample_spec ss; ++ pa_buffer_attr ba; ++ pa_stream *s; ++ ++ assert (!stream); ++ /* Initialize everything to -1, which in practice gets us ++ * about 2 seconds of latency (which is fine). This is not the ++ * same as passing NULL for this struct, which gets us an ++ * unnecessarily short alsa-like latency. ++ */ ++ ba.fragsize = (uint32_t) -1; ++ ba.tlength = (uint32_t) -1; ++ ba.prebuf = (uint32_t) -1; ++ ba.minreq = (uint32_t) -1; ++ ba.maxlength = (uint32_t) -1; ++ ++ ss.channels = sound_params->channels; ++ ss.rate = sound_params->rate; ++ switch (sound_params->fmt) { ++ case SFMT_U8: ++ ss.format = PA_SAMPLE_U8; ++ break; ++ case SFMT_S16 | SFMT_LE: ++ ss.format = PA_SAMPLE_S16LE; ++ break; ++ case SFMT_S16 | SFMT_BE: ++ ss.format = PA_SAMPLE_S16BE; ++ break; ++ case SFMT_FLOAT | SFMT_LE: ++ ss.format = PA_SAMPLE_FLOAT32LE; ++ break; ++ case SFMT_FLOAT | SFMT_BE: ++ ss.format = PA_SAMPLE_FLOAT32BE; ++ break; ++ case SFMT_S32 | SFMT_LE: ++ ss.format = PA_SAMPLE_S32LE; ++ break; ++ case SFMT_S32 | SFMT_BE: ++ ss.format = PA_SAMPLE_S32BE; ++ break; ++ ++ default: ++ fatal ("pulse: got unrequested format"); ++ } ++ ++ debug ("opening stream"); ++ ++ pa_threaded_mainloop_lock (mainloop); ++ ++ /* TODO: figure out if there are useful stream properties to set. ++ * ++ * I do not really see any in proplist.h that we can set from ++ * here (there are media title/artist/etc props but we do not ++ * have that data available here). ++ */ ++ s = pa_stream_new (context, "music", &ss, NULL); ++ if (!s) ++ fatal ("pulse: stream allocation failed"); ++ ++ pa_stream_set_state_callback (s, stream_state_callback, mainloop); ++ pa_stream_set_write_callback (s, stream_write_callback, mainloop); ++ ++ /* Ignore return value, rely on failed stream state instead. */ ++ pa_stream_connect_playback ( ++ s, NULL, &ba, ++ PA_STREAM_INTERPOLATE_TIMING | ++ PA_STREAM_AUTO_TIMING_UPDATE | ++ PA_STREAM_ADJUST_LATENCY, ++ NULL, NULL); ++ ++ while (1) { ++ pa_stream_state_t state = pa_stream_get_state (s); ++ ++ if (state == PA_STREAM_READY) ++ break; ++ ++ if (!PA_STREAM_IS_GOOD (state)) { ++ error ("PulseAudio stream connection failed"); ++ ++ goto fail; ++ } ++ ++ debug ("waiting for stream to become ready..."); ++ pa_threaded_mainloop_wait (mainloop); ++ } ++ ++ /* Only set the global stream now that it is actually ready */ ++ stream = s; ++ ++ pa_threaded_mainloop_unlock (mainloop); ++ ++ return 1; ++ ++fail: ++ pa_stream_unref (s); ++ ++ pa_threaded_mainloop_unlock (mainloop); ++ return 0; ++} ++ ++static void pulse_close (void) ++{ ++ debug ("closing stream"); ++ ++ pa_threaded_mainloop_lock (mainloop); ++ ++ pa_stream_disconnect (stream); ++ pa_stream_unref (stream); ++ stream = NULL; ++ ++ pa_threaded_mainloop_unlock (mainloop); ++} ++ ++static int pulse_play (const char *buff, const size_t size) ++{ ++ size_t offset = 0; ++ ++ debug ("Got %d bytes to play", (int)size); ++ ++ pa_threaded_mainloop_lock (mainloop); ++ ++ /* The buffer is usually writable when we get here, and there ++ * are usually few (if any) writes after the first one. So ++ * there is no point in doing further writes directly from the ++ * callback: we can just do all writes from this thread. ++ */ ++ ++ /* Break out of the loop if some other thread manages to close ++ * our stream underneath us. ++ */ ++ while (stream) { ++ size_t towrite = MIN(pa_stream_writable_size (stream), ++ size - offset); ++ debug ("writing %d bytes", (int)towrite); ++ ++ /* We have no working way of dealing with errors ++ * (see below). */ ++ if (pa_stream_write(stream, buff + offset, towrite, ++ NULL, 0, PA_SEEK_RELATIVE)) ++ error ("pa_stream_write failed"); ++ ++ offset += towrite; ++ ++ if (offset >= size) ++ break; ++ ++ pa_threaded_mainloop_wait (mainloop); ++ } ++ ++ pa_threaded_mainloop_unlock (mainloop); ++ ++ debug ("Done playing!"); ++ ++ /* We should always return size, calling code does not deal ++ * well with anything else. Only read the rest if you want to ++ * know why. ++ * ++ * The output buffer reader thread (out_buf.c:read_thread) ++ * repeatedly loads some 64k/0.1s of audio into a buffer on ++ * the stack, then calls audio_send_pcm repeatedly until this ++ * entire buffer has been processed (similar to the loop in ++ * this function). audio_send_pcm applies the softmixer and ++ * equalizer, then feeds the result to this function, passing ++ * through our return value. ++ * ++ * So if we return less than size the equalizer/softmixer is ++ * re-applied to the remaining data, which is silly. Also, ++ * audio_send_pcm checks for our return value being zero and ++ * calls fatal() if it is, so try to always process *some* ++ * data. Also, out_buf.c uses the return value of this ++ * function from the last run through its inner loop to update ++ * its time attribute, which means it will be interestingly ++ * off if that loop ran more than once. ++ * ++ * Oh, and alsa.c seems to think it can return -1 to indicate ++ * failure, which will cause out_buf.c to rewind its buffer ++ * (to before its start, usually). ++ */ ++ return size; ++} ++ ++static void volume_cb (const pa_cvolume *v, void *userdata) ++{ ++ int *result = userdata; ++ ++ if (v) ++ *result = 100 * pa_cvolume_avg (v) / PA_VOLUME_NORM; ++ ++ pa_threaded_mainloop_signal (mainloop, 0); ++} ++ ++static void sink_volume_cb (pa_context *c ATTR_UNUSED, ++ const pa_sink_info *i, int eol ATTR_UNUSED, ++ void *userdata) ++{ ++ volume_cb (i ? &i->volume : NULL, userdata); ++} ++ ++static void sink_input_volume_cb (pa_context *c ATTR_UNUSED, ++ const pa_sink_input_info *i, ++ int eol ATTR_UNUSED, ++ void *userdata ATTR_UNUSED) ++{ ++ volume_cb (i ? &i->volume : NULL, userdata); ++} ++ ++static int pulse_read_mixer (void) ++{ ++ pa_operation *op; ++ int result = 0; ++ ++ debug ("read mixer"); ++ ++ pa_threaded_mainloop_lock (mainloop); ++ ++ if (stream) { ++ if (showing_sink_volume) ++ op = pa_context_get_sink_info_by_index ( ++ context, pa_stream_get_device_index (stream), ++ sink_volume_cb, &result); ++ else ++ op = pa_context_get_sink_input_info ( ++ context, pa_stream_get_index (stream), ++ sink_input_volume_cb, &result); ++ ++ while (pa_operation_get_state (op) == PA_OPERATION_RUNNING) ++ pa_threaded_mainloop_wait (mainloop); ++ ++ pa_operation_unref (op); ++ } ++ ++ pa_threaded_mainloop_unlock (mainloop); ++ ++ return result; ++} ++ ++static void pulse_set_mixer (int vol) ++{ ++ pa_cvolume v; ++ pa_operation *op; ++ ++ /* Setting volume for one channel does the right thing. */ ++ pa_cvolume_set(&v, 1, vol * PA_VOLUME_NORM / 100); ++ ++ pa_threaded_mainloop_lock (mainloop); ++ ++ if (stream) { ++ if (showing_sink_volume) ++ op = pa_context_set_sink_volume_by_index ( ++ context, pa_stream_get_device_index (stream), ++ &v, NULL, NULL); ++ else ++ op = pa_context_set_sink_input_volume ( ++ context, pa_stream_get_index (stream), ++ &v, NULL, NULL); ++ ++ pa_operation_unref (op); ++ } ++ ++ pa_threaded_mainloop_unlock (mainloop); ++} ++ ++static int pulse_get_buff_fill (void) ++{ ++ /* This function is problematic. MOC uses it to for the "time ++ * remaining" in the UI, but calls it more than once per ++ * second (after each chunk of audio played, not for each ++ * playback time update). We have to be fairly accurate here ++ * for that time remaining to not jump weirdly. But PulseAudio ++ * cannot give us a 100% accurate value here, as it involves a ++ * server roundtrip. And if we call this a lot it suggests ++ * switching to a mode where the value is interpolated, making ++ * it presumably more inaccurate (see the flags we pass to ++ * pa_stream_connect_playback). ++ * ++ * MOC also contains what I believe to be a race: it calls ++ * audio_get_buff_fill "soon" (after playing the first chunk) ++ * after starting playback of the next song, at which point we ++ * still have part of the previous song buffered. This means ++ * our position into the new song is negative, which fails an ++ * assert (in out_buf.c:out_buf_time_get). There is no sane ++ * way for us to detect this condition. I believe no other ++ * backend triggers this because the assert sits after an ++ * implicit float -> int seconds conversion, which means we ++ * have to be off by at least an entire second to get a ++ * negative value, and none of the other backends have buffers ++ * that large (alsa buffers are supposedly a few 100 ms). ++ */ ++ pa_usec_t buffered_usecs = 0; ++ int buffered_bytes = 0; ++ ++ pa_threaded_mainloop_lock (mainloop); ++ ++ /* Using pa_stream_get_timing_info and returning the distance ++ * between write_index and read_index would be more obvious, ++ * but because of how the result is actually used I believe ++ * using the latency value is slightly more correct, and it ++ * makes the following crash-avoidance hack more obvious. ++ */ ++ ++ /* This function will frequently fail the first time we call ++ * it (pulse does not have the requested data yet). We ignore ++ * that and just return 0. ++ * ++ * Deal with stream being NULL too, just in case this is ++ * called in a racy fashion similar to how reset() is. ++ */ ++ if (stream && ++ pa_stream_get_latency (stream, &buffered_usecs, NULL) >= 0) { ++ /* Crash-avoidance HACK: floor our latency to at most ++ * 1 second. It is usually more, but reporting that at ++ * the start of playback crashes MOC, and we cannot ++ * sanely detect when reporting it is safe. ++ */ ++ if (buffered_usecs > 1000000) ++ buffered_usecs = 1000000; ++ ++ buffered_bytes = pa_usec_to_bytes ( ++ buffered_usecs, ++ pa_stream_get_sample_spec (stream)); ++ } ++ ++ pa_threaded_mainloop_unlock (mainloop); ++ ++ debug ("buffer fill: %d usec / %d bytes", ++ (int) buffered_usecs, (int) buffered_bytes); ++ ++ return buffered_bytes; ++} ++ ++static void flush_callback (pa_stream *s ATTR_UNUSED, int success, ++ void *userdata) ++{ ++ int *result = userdata; ++ ++ *result = success; ++ ++ pa_threaded_mainloop_signal (mainloop, 0); ++} ++ ++static int pulse_reset (void) ++{ ++ pa_operation *op; ++ int result = 0; ++ ++ debug ("reset requested"); ++ ++ pa_threaded_mainloop_lock (mainloop); ++ ++ /* We *should* have a stream here, but MOC is racy, so bulletproof */ ++ if (stream) { ++ op = pa_stream_flush (stream, flush_callback, &result); ++ ++ while (pa_operation_get_state (op) == PA_OPERATION_RUNNING) ++ pa_threaded_mainloop_wait (mainloop); ++ ++ pa_operation_unref (op); ++ } else ++ logit ("pulse_reset() called without a stream"); ++ ++ pa_threaded_mainloop_unlock (mainloop); ++ ++ return result; ++} ++ ++static int pulse_get_rate (void) ++{ ++ /* This is called once right after open. Do not bother making ++ * this fast. */ ++ ++ int result; ++ ++ pa_threaded_mainloop_lock (mainloop); ++ ++ if (stream) ++ result = pa_stream_get_sample_spec (stream)->rate; ++ else { ++ error ("get_rate called without a stream"); ++ result = 0; ++ } ++ ++ pa_threaded_mainloop_unlock (mainloop); ++ ++ return result; ++} ++ ++static void pulse_toggle_mixer_channel (void) ++{ ++ showing_sink_volume = !showing_sink_volume; ++} ++ ++static void sink_name_cb (pa_context *c ATTR_UNUSED, ++ const pa_sink_info *i, int eol ATTR_UNUSED, ++ void *userdata) ++{ ++ char **result = userdata; ++ ++ if (i && !*result) ++ *result = xstrdup (i->name); ++ ++ pa_threaded_mainloop_signal (mainloop, 0); ++} ++ ++static void sink_input_name_cb (pa_context *c ATTR_UNUSED, ++ const pa_sink_input_info *i, ++ int eol ATTR_UNUSED, ++ void *userdata) ++{ ++ char **result = userdata; ++ ++ if (i && !*result) ++ *result = xstrdup (i->name); ++ ++ pa_threaded_mainloop_signal (mainloop, 0); ++} ++ ++static char *pulse_get_mixer_channel_name (void) ++{ ++ char *result = NULL; ++ pa_operation *op; ++ ++ pa_threaded_mainloop_lock (mainloop); ++ ++ if (stream) { ++ if (showing_sink_volume) ++ op = pa_context_get_sink_info_by_index ( ++ context, pa_stream_get_device_index (stream), ++ sink_name_cb, &result); ++ else ++ op = pa_context_get_sink_input_info ( ++ context, pa_stream_get_index (stream), ++ sink_input_name_cb, &result); ++ ++ while (pa_operation_get_state (op) == PA_OPERATION_RUNNING) ++ pa_threaded_mainloop_wait (mainloop); ++ ++ pa_operation_unref (op); ++ } ++ ++ pa_threaded_mainloop_unlock (mainloop); ++ ++ if (!result) ++ result = xstrdup ("disconnected"); ++ ++ return result; ++} ++ ++void pulse_funcs (struct hw_funcs *funcs) ++{ ++ funcs->init = pulse_init; ++ funcs->shutdown = pulse_shutdown; ++ funcs->open = pulse_open; ++ funcs->close = pulse_close; ++ funcs->play = pulse_play; ++ funcs->read_mixer = pulse_read_mixer; ++ funcs->set_mixer = pulse_set_mixer; ++ funcs->get_buff_fill = pulse_get_buff_fill; ++ funcs->reset = pulse_reset; ++ funcs->get_rate = pulse_get_rate; ++ funcs->toggle_mixer_channel = pulse_toggle_mixer_channel; ++ funcs->get_mixer_channel_name = pulse_get_mixer_channel_name; ++} +diff --git a/pulse.h b/pulse.h +new file mode 100644 +--- /dev/null ++++ b/pulse.h +@@ -0,0 +1,14 @@ ++#ifndef PULSE_H ++#define PULSE_H ++ ++#ifdef __cplusplus ++extern "C" { ++#endif ++ ++void pulse_funcs (struct hw_funcs *funcs); ++ ++#ifdef __cplusplus ++} ++#endif ++ ++#endif diff --git a/nixpkgs/pkgs/applications/audio/renoise/default.nix b/nixpkgs/pkgs/applications/audio/renoise/default.nix index 081c4ab41acb..ddbefd129ffe 100644 --- a/nixpkgs/pkgs/applications/audio/renoise/default.nix +++ b/nixpkgs/pkgs/applications/audio/renoise/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { src = if stdenv.hostPlatform.system == "x86_64-linux" then - if builtins.isNull releasePath then + if releasePath == null then fetchurl { url = "https://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_x86_64.tar.bz2"; sha256 = "0pan68fr22xbj7a930y29527vpry3f07q3i9ya4fp6g7aawffsga"; @@ -27,7 +27,7 @@ stdenv.mkDerivation rec { else releasePath else if stdenv.hostPlatform.system == "i686-linux" then - if builtins.isNull releasePath then + if releasePath == null then fetchurl { url = "http://files.renoise.com/demo/Renoise_${urlVersion version}_Demo_x86.tar.bz2"; sha256 = "1lccjj4k8hpqqxxham5v01v2rdwmx3c5kgy1p9lqvzqma88k4769"; diff --git a/nixpkgs/pkgs/applications/audio/sfxr/default.nix b/nixpkgs/pkgs/applications/audio/sfxr/default.nix new file mode 100644 index 000000000000..fbd0f3c5def3 --- /dev/null +++ b/nixpkgs/pkgs/applications/audio/sfxr/default.nix @@ -0,0 +1,56 @@ +{ stdenv +, fetchurl +, pkgconfig +, desktop-file-utils +, SDL +, gtk3 +, gsettings-desktop-schemas +, wrapGAppsHook +}: + +stdenv.mkDerivation rec { + pname = "sfxr"; + version = "1.2.1"; + + src = fetchurl { + url = "http://www.drpetter.se/files/sfxr-sdl-${version}.tar.gz"; + sha256 = "0dfqgid6wzzyyhc0ha94prxax59wx79hqr25r6if6by9cj4vx4ya"; + }; + + postPatch = '' + substituteInPlace Makefile --replace "usr/" "" + substituteInPlace sdlkit.h --replace \ + "/usr/share/sfxr/sfxr.bmp" \ + "$out/share/sfxr/sfxr.bmp" + substituteInPlace main.cpp \ + --replace \ + "/usr/share/sfxr/font.tga" \ + "$out/share/sfxr/font.tga" \ + --replace \ + "/usr/share/sfxr/ld48.tga" \ + "$out/share/sfxr/ld48.tga" + ''; + + nativeBuildInputs = [ + pkgconfig + desktop-file-utils + ]; + + buildInputs = [ + SDL + gtk3 + gsettings-desktop-schemas + wrapGAppsHook + ]; + + makeFlags = [ "DESTDIR=$(out)" ]; + + meta = with stdenv.lib; { + homepage = "http://www.drpetter.se/project_sfxr.html"; + description = "A videogame sound effect generator"; + license = licenses.mit; + maintainers = with maintainers; [ fgaz ]; + platforms = platforms.unix; + }; +} + diff --git a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix index 85687090721d..61d65cb64b6b 100644 --- a/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix +++ b/nixpkgs/pkgs/applications/display-managers/lightdm/default.nix @@ -9,7 +9,7 @@ with stdenv.lib; stdenv.mkDerivation rec { pname = "lightdm"; - version = "1.28.0"; + version = "1.30.0"; outputs = [ "out" "dev" ]; @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { owner = "CanonicalLtd"; repo = pname; rev = version; - sha256 = "1mmqy1jdvgc0h0h9gli7n4vdv5p8m5019qjr5ni4h73iz6mjdj2b"; + sha256 = "0i1yygmjbkdjnqdl9jn8zsa1mfs2l19qc4k2capd8q1ndhnjm2dx"; }; nativeBuildInputs = [ diff --git a/nixpkgs/pkgs/applications/editors/android-studio/default.nix b/nixpkgs/pkgs/applications/editors/android-studio/default.nix index 8af0a6475613..af5adca20ed8 100644 --- a/nixpkgs/pkgs/applications/editors/android-studio/default.nix +++ b/nixpkgs/pkgs/applications/editors/android-studio/default.nix @@ -8,15 +8,15 @@ let inherit (gnome2) GConf gnome_vfs; }; stableVersion = { - version = "3.4.0.18"; # "Android Studio 3.4.0" - build = "183.5452501"; - sha256Hash = "0i8wz9v6nxzr27a07cv2330i84v94pcl13gjwvpglp55hyzd8axd"; + version = "3.4.1.0"; # "Android Studio 3.4.1" + build = "183.5522156"; + sha256Hash = "0y4l9d1yrvv1csx6vl4jnqgqy96y44rl6p8hcxrnbvrg61iqnj30"; }; betaVersion = latestVersion; latestVersion = { # canary & dev - version = "3.5.0.13"; # "Android Studio 3.5 Beta 1" - build = "191.5529924"; - sha256Hash = "0i710n2wr0a8lvxf1mg6a5pmdh1l72wa0hwyricyixi0mylwwc6l"; + version = "3.5.0.14"; # "Android Studio 3.5 Beta 2" + build = "191.5549111"; + sha256Hash = "1zy2x0m1nsx3yy64cp1jvgb9aqkribwm64mv50g9355sdz7qjhcf"; }; in rec { # Attributes are named by their corresponding release channels diff --git a/nixpkgs/pkgs/applications/editors/neovim/default.nix b/nixpkgs/pkgs/applications/editors/neovim/default.nix index a53c499fe5c2..5d623cdfc6db 100644 --- a/nixpkgs/pkgs/applications/editors/neovim/default.nix +++ b/nixpkgs/pkgs/applications/editors/neovim/default.nix @@ -80,6 +80,7 @@ in "-DGPERF_PRG=${gperf}/bin/gperf" ] ++ optional doCheck "-DBUSTED_PRG=${neovimLuaEnv}/bin/busted" + ++ optional (!lua.pkgs.isLuaJIT) "-DPREFER_LUA=ON" ; # triggers on buffer overflow bug while running tests @@ -122,8 +123,5 @@ in license = with licenses; [ asl20 vim ]; maintainers = with maintainers; [ manveru garbas rvolosatovs ]; platforms = platforms.unix; - # `lua: bad light userdata pointer` - # https://nix-cache.s3.amazonaws.com/log/9ahcb52905d9d417zsskjpc331iailpq-neovim-unwrapped-0.2.2.drv - broken = stdenv.isAarch64; }; } diff --git a/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix b/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix index ebceb4a8b352..b8fef39d3ea2 100644 --- a/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix +++ b/nixpkgs/pkgs/applications/editors/sublime/3/packages.nix @@ -12,8 +12,8 @@ in } {}; sublime3 = common { - buildVersion = "3200"; - x32sha256 = "01krmbji8z62x4kl1hf3c1nfj4c4n4xmg1df62ljiwhkcfm74izr"; - x64sha256 = "1gagc50fqb0d2bszi8m5spzb64shkaylvrwl6fxah55xcmy2kmdr"; + buildVersion = "3207"; + x32sha256 = "14hfb8x8zb49zjq0pd8s73xk333gmf38h5b7g979czcmbhdxiyqy"; + x64sha256 = "1i1q9592sc8idvlpygksdkclh7h506hsz5l0i02g1814w0flzdmc"; } {}; } diff --git a/nixpkgs/pkgs/applications/editors/tiled/default.nix b/nixpkgs/pkgs/applications/editors/tiled/default.nix index 1cfb04b7b2ef..4fa93d78235e 100644 --- a/nixpkgs/pkgs/applications/editors/tiled/default.nix +++ b/nixpkgs/pkgs/applications/editors/tiled/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { pname = "tiled"; - version = "1.2.3"; + version = "1.2.4"; src = fetchFromGitHub { owner = "bjorn"; repo = pname; rev = "v${version}"; - sha256 = "1zsfhw539zwyf5qfnirzkkgy5bmrrs2cry4gimrhpky9fjlaa9h8"; + sha256 = "18a0pkq8j20v1njrl0sswm0ch10c6c4fas7q9kk2d2fd610ga6gh"; }; nativeBuildInputs = [ pkgconfig qmake ]; diff --git a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix index 714a1f921d62..1787b1d9e7fc 100644 --- a/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix +++ b/nixpkgs/pkgs/applications/graphics/gimp/plugins/default.nix @@ -3,7 +3,7 @@ # preferences -> Folders -> Plug-ins # same applies for the scripts -{ pkgs, gimp }: +{ config, pkgs, gimp }: let inherit (pkgs) stdenv fetchurl pkgconfig intltool glib fetchFromGitHub; inherit (gimp) targetPluginDir targetScriptDir; @@ -35,7 +35,8 @@ let }; in -rec { + +stdenv.lib.makeScope pkgs.newScope (self: with self; { gap = pluginDerivation { /* menu: Video @@ -90,32 +91,15 @@ rec { meta.broken = true; }; - resynthesizer = pluginDerivation { + resynthesizer = pluginDerivation rec { /* menu: - Filters/Map/Resynthesize - Filters/Enhance/Smart enlarge - Filters/Enhance/Smart sharpen - Filters/Enhance/Smart remove selection - */ - name = "resynthesizer-0.16"; - buildInputs = with pkgs; [ fftw ]; - src = fetchurl { - url = http://www.logarithmic.net/pfh-files/resynthesizer/resynthesizer-0.16.tar.gz; - sha256 = "1k90a1jzswxmajn56rdxa4r60v9v34fmqsiwfdxqcvx3yf4yq96x"; - }; - - installPhase = " - installPlugins resynth - installScripts smart-{enlarge,remove}.scm - "; - }; - - resynthesizer2 = pluginDerivation rec { - /* menu: - Filters/Map/Resynthesize - Filters/Enhance/Smart enlarge - Filters/Enhance/Smart sharpen - Filters/Enhance/Smart remove selection + Edit/Fill with pattern seamless... + Filters/Enhance/Heal selection... + Filters/Enhance/Heal transparency... + Filters/Enhance/Sharpen by synthesis... + Filters/Enhance/Uncrop... + Filters/Map/Style... + Filters/Render/Texture... */ pname = "resynthesizer"; version = "2.0.3"; @@ -243,4 +227,8 @@ rec { }; */ -} +} // stdenv.lib.optionalAttrs (config.allowAliases or true) { + + resynthesizer2 = resynthesizer; + +}) diff --git a/nixpkgs/pkgs/applications/misc/buku/default.nix b/nixpkgs/pkgs/applications/misc/buku/default.nix index bde8fab81441..9822a187b9e8 100644 --- a/nixpkgs/pkgs/applications/misc/buku/default.nix +++ b/nixpkgs/pkgs/applications/misc/buku/default.nix @@ -1,14 +1,14 @@ { stdenv, python3, fetchFromGitHub, fetchpatch }: with python3.pkgs; buildPythonApplication rec { - version = "4.1"; + version = "4.2"; pname = "buku"; src = fetchFromGitHub { owner = "jarun"; repo = "buku"; rev = "v${version}"; - sha256 = "166l1fmpqn4hys4l0ssc4yd590mmav1w62vm9l5ijhjhmlnrzfax"; + sha256 = "1ipvhd9wa4iq0763b9h4f3xa6x31bssi6m0595w97mdhh9n6bgxg"; }; checkInputs = [ @@ -18,6 +18,7 @@ with python3.pkgs; buildPythonApplication rec { pylint flake8 pyyaml + mypy_extensions ]; propagatedBuildInputs = [ diff --git a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix index 2552cf18f078..fc0c39b13cc9 100644 --- a/nixpkgs/pkgs/applications/misc/dbeaver/default.nix +++ b/nixpkgs/pkgs/applications/misc/dbeaver/default.nix @@ -7,7 +7,7 @@ stdenv.mkDerivation rec { name = "dbeaver-ce-${version}"; - version = "6.0.3"; + version = "6.0.4"; desktopItem = makeDesktopItem { name = "dbeaver"; @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://dbeaver.io/files/${version}/dbeaver-ce-${version}-linux.gtk.x86_64.tar.gz"; - sha256 = "0pcf8p9nmbj6kf32zrjjrfyxb07x37h56zm3s5gdf1jk2hvrarvl"; + sha256 = "1b3yv91bvwrkln63asn6ybkdhzb8pibz55rr99rv0z8rbmwnbjpn"; }; installPhase = '' diff --git a/nixpkgs/pkgs/applications/misc/electrum/default.nix b/nixpkgs/pkgs/applications/misc/electrum/default.nix index 9cabd6dda7c6..2f8b98f3a446 100644 --- a/nixpkgs/pkgs/applications/misc/electrum/default.nix +++ b/nixpkgs/pkgs/applications/misc/electrum/default.nix @@ -1,14 +1,27 @@ -{ stdenv, fetchurl, fetchFromGitHub, python3, python3Packages, zbar, secp256k1 }: +{ stdenv, fetchurl, fetchFromGitHub, python3, python3Packages, zbar, secp256k1 + + +# for updater.nix +, writeScript +, common-updater-scripts +, bash +, coreutils +, curl +, gnugrep +, gnupg +, gnused +, nix +}: let - version = "3.3.5"; + version = "3.3.6"; # Not provided in official source releases, which are what upstream signs. tests = fetchFromGitHub { owner = "spesmilo"; repo = "electrum"; rev = version; - sha256 = "11rzzrv5xxqazcb7q1ig93d6cisqmd1x0jrgvfgzysbzvi51gg11"; + sha256 = "0s8i6fn1jwk80d036n4c7csv4qnx2k15f6347kr4mllglcpa9hb3"; extraPostFetch = '' mv $out ./all @@ -23,7 +36,7 @@ python3Packages.buildPythonApplication rec { src = fetchurl { url = "https://download.electrum.org/${version}/Electrum-${version}.tar.gz"; - sha256 = "1csj0n96zlajnrs39wsazfj5lmy7v7n77cdz56lr8nkmchh6k9z1"; + sha256 = "0am5ki3z0yvhrz16vp2jjy5fkxxqph0mj9qqpbw3kpql65shykwz"; }; postUnpack = '' @@ -85,6 +98,21 @@ python3Packages.buildPythonApplication rec { $out/bin/electrum help >/dev/null ''; + passthru.updateScript = import ./update.nix { + inherit (stdenv) lib; + inherit + writeScript + common-updater-scripts + bash + coreutils + curl + gnupg + gnugrep + gnused + nix + ; + }; + meta = with stdenv.lib; { description = "A lightweight Bitcoin wallet"; longDescription = '' 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/guake/default.nix b/nixpkgs/pkgs/applications/misc/guake/default.nix index 0d7f460fb062..37352915cb84 100644 --- a/nixpkgs/pkgs/applications/misc/guake/default.nix +++ b/nixpkgs/pkgs/applications/misc/guake/default.nix @@ -1,8 +1,8 @@ { stdenv, fetchFromGitHub, python3, gettext, gobject-introspection, wrapGAppsHook, glibcLocales -, gtk3, keybinder3, libnotify, libutempter, vte }: +, gtk3, keybinder3, libnotify, libutempter, vte, libwnck3 }: let - version = "3.5.0"; + version = "3.6.3"; in python3.pkgs.buildPythonApplication rec { name = "guake-${version}"; format = "other"; @@ -11,7 +11,7 @@ in python3.pkgs.buildPythonApplication rec { owner = "Guake"; repo = "guake"; rev = version; - sha256 = "0fz0gciw5fpxrp6yyji27l7q8c0r9ljsq6vw584mr70bcl1gzjqx"; + sha256 = "13ipnmqcyixpa6qv83m0f91za4kar14s5jpib68b32z65x1h0j3b"; }; # Strict deps breaks guake @@ -23,7 +23,7 @@ in python3.pkgs.buildPythonApplication rec { buildInputs = [ gtk3 keybinder3 libnotify python3 vte ]; - propagatedBuildInputs = with python3.pkgs; [ dbus-python pbr pycairo pygobject3 ]; + propagatedBuildInputs = with python3.pkgs; [ dbus-python pbr pycairo pygobject3 libwnck3 ]; LC_ALL = "en_US.UTF-8"; # fixes weird encoding error, see https://github.com/NixOS/nixpkgs/pull/38642#issuecomment-379727699 diff --git a/nixpkgs/pkgs/applications/misc/lifelines/default.nix b/nixpkgs/pkgs/applications/misc/lifelines/default.nix new file mode 100644 index 000000000000..7207dea9d522 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/lifelines/default.nix @@ -0,0 +1,29 @@ +{ 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 stdenv.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/pstree/default.nix b/nixpkgs/pkgs/applications/misc/pstree/default.nix new file mode 100644 index 000000000000..7aaa8a8c38d2 --- /dev/null +++ b/nixpkgs/pkgs/applications/misc/pstree/default.nix @@ -0,0 +1,38 @@ +{ 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 stdenv.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/termite/default.nix b/nixpkgs/pkgs/applications/misc/termite/default.nix index 22f669f03294..674b228746d4 100644 --- a/nixpkgs/pkgs/applications/misc/termite/default.nix +++ b/nixpkgs/pkgs/applications/misc/termite/default.nix @@ -1,20 +1,26 @@ -{ stdenv, fetchFromGitHub, pkgconfig, vte-ng, gtk3, ncurses, wrapGAppsHook }: +{ stdenv, fetchFromGitHub, fetchpatch, pkgconfig, vte-ng, gtk3, ncurses, wrapGAppsHook }: stdenv.mkDerivation rec { name = "termite-${version}"; - version = "14"; + version = "15"; src = fetchFromGitHub { owner = "thestinger"; repo = "termite"; rev = "v${version}"; - sha256 = "0dmz9rpc2fdvcwhcmjnhb48ixn403gxpq03g334d1hgjw2hsyx7x"; + sha256 = "0hp1x6lj098m3jgna274wv5dv60lnzg22297di68g4hw9djjyd2k"; fetchSubmodules = true; }; # https://github.com/thestinger/termite/pull/516 patches = [ ./url_regexp_trailing.patch ./add_errno_header.patch - ] ++ stdenv.lib.optional stdenv.isDarwin ./remove_ldflags_macos.patch; + # Fix off-by-one in select_text() on libvte >= 0.55.0 + # Expected to be included in next release (16). + (fetchpatch { + url = "https://github.com/thestinger/termite/commit/7e9a93b421b9596f8980645a46ac2ad5468dac06.patch"; + sha256 = "0vph2m5919f7w1xnc8i6z0j44clsm1chxkfg7l71nahxyfw5yh4j"; + }) + ] ++ stdenv.lib.optional stdenv.isDarwin ./remove_ldflags_macos.patch; makeFlags = [ "VERSION=v${version}" "PREFIX=" "DESTDIR=$(out)" ]; diff --git a/nixpkgs/pkgs/applications/misc/waybar/default.nix b/nixpkgs/pkgs/applications/misc/waybar/default.nix index 776ba8f081e3..cdd78866cdcb 100644 --- a/nixpkgs/pkgs/applications/misc/waybar/default.nix +++ b/nixpkgs/pkgs/applications/misc/waybar/default.nix @@ -9,13 +9,13 @@ }: stdenv.mkDerivation rec { name = "waybar-${version}"; - version = "0.6.1"; + version = "0.6.5"; src = fetchFromGitHub { owner = "Alexays"; repo = "Waybar"; rev = version; - sha256 = "1hzwqg22sjiirx6743512271p3jlakrw0155av1phrv5b7p3ws8a"; + sha256 = "1k3ynx5ssq7ji0nlx0n7zrgrshxv5abj8fa8c5lcyxr2wxffna9z"; }; nativeBuildInputs = [ diff --git a/nixpkgs/pkgs/applications/misc/xmind/default.nix b/nixpkgs/pkgs/applications/misc/xmind/default.nix index a12f3dc304ba..fc5abf109894 100644 --- a/nixpkgs/pkgs/applications/misc/xmind/default.nix +++ b/nixpkgs/pkgs/applications/misc/xmind/default.nix @@ -1,20 +1,23 @@ -{ stdenv, lib, dpkg, fetchurl, gtk2, jre, libXtst, makeWrapper }: +{ stdenv, lib, fetchzip, fetchurl, gtk2, jre, libXtst, makeWrapper, makeDesktopItem, runtimeShell }: stdenv.mkDerivation rec { name = "xmind-${version}"; - version = "7.5-update1"; + version = "8-update8"; - src = if stdenv.hostPlatform.system == "i686-linux" then fetchurl { - url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_i386.deb"; - sha256 = "04kr6pw0kwy715bp9wcnqnw1k5wl65xa87lhljrskm291p402jy1"; - } else if stdenv.hostPlatform.system == "x86_64-linux" then fetchurl { - url = "http://dl2.xmind.net/xmind-downloads/${name}-linux_amd64.deb"; - sha256 = "1j2ynhk7p3m3vd6c4mjwpnlzqgfj5c4q3zydab3nfwncwx6gaqj9"; - } else throw "platform ${stdenv.hostPlatform.system} not supported!"; + src = fetchzip { + url = "https://xmind.net/xmind/downloads/${name}-linux.zip"; + stripRoot = false; + sha256 = "1p68z0b4brgiyybz190alqv716ncql49vsksm41y90mcjd8s4jhn"; + }; + + srcIcon = fetchurl { + url = "https://aur.archlinux.org/cgit/aur.git/plain/xmind.png?h=xmind"; + sha256 = "0jxq2fiq69q9ly0m6hx2qfybqad22sl42ciw636071khpqgc885f"; + }; - nativeBuildInputs = [ dpkg makeWrapper ]; + patches = [ ./java-env-config-fixes.patch ]; - unpackCmd = "mkdir root ; dpkg-deb -x $curSrc root"; + nativeBuildInputs = [ makeWrapper ]; dontBuild = true; dontPatchELF = true; @@ -22,12 +25,27 @@ stdenv.mkDerivation rec { libPath = lib.makeLibraryPath [ gtk2 libXtst ]; - installPhase = '' - mkdir -p $out - cp -r usr/lib/xmind $out/libexec - cp -r usr/bin usr/share $out - rm $out/libexec/XMind.ini - mv etc/XMind.ini $out/libexec + desktopItem = makeDesktopItem { + name = "XMind"; + exec = "XMind"; + icon = "xmind"; + desktopName = "XMind"; + comment = meta.description; + categories = "Office;"; + mimeType = "application/xmind;xscheme-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 @@ -35,8 +53,17 @@ stdenv.mkDerivation rec { wrapProgram $out/libexec/XMind \ --prefix LD_LIBRARY_PATH : "${libPath}" - substituteInPlace "$out/bin/XMind" \ - --replace '/usr/lib/xmind' "$out/libexec" + # 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 ''; @@ -55,9 +82,9 @@ stdenv.mkDerivation rec { GTD. Meanwhile, XMind can read FreeMind and MindManager files, and save to Evernote. ''; - homepage = http://www.xmind.net/; + homepage = https://www.xmind.net/; license = licenses.unfree; platforms = platforms.linux; - maintainers = with maintainers; [ michalrus ]; + 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/networking/Sylk/default.nix b/nixpkgs/pkgs/applications/networking/Sylk/default.nix new file mode 100644 index 000000000000..36f6279c2092 --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/Sylk/default.nix @@ -0,0 +1,32 @@ +{ appimageTools, fetchurl, lib, gsettings-desktop-schemas, gtk3 }: + +let + pname = "Sylk"; + version = "2.1.0"; +in + +appimageTools.wrapType2 rec { + name = "${pname}-${version}"; + + src = fetchurl { + url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage"; + sha256 = "1ifi8qr6f84dcssxhv5ar1s48nsqxiv2j1blc82248hmq5is24mf"; + }; + + 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}}"; + + meta = with lib; { + description = "Sylk WebRTC client"; + homepage = "http://sylkserver.com/"; + license = licenses.agpl3Plus; + maintainers = with maintainers; [ zimbatm ]; + platforms = [ "i386-linux" "x86_64-linux" ]; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix index a910f1d14bdf..430642d83497 100644 --- a/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix +++ b/nixpkgs/pkgs/applications/networking/browsers/browsh/default.nix @@ -1,14 +1,14 @@ { stdenv, buildGoPackage, fetchurl, fetchFromGitHub, go-bindata }: let - version = "1.4.13"; + version = "1.5.0"; # TODO: must build the extension instead of downloading it. But since it's # literally an asset that is indifferent regardless of the platform, this # might be just enough. webext = fetchurl { url = "https://github.com/browsh-org/browsh/releases/download/v${version}/browsh-${version}-an.fx.xpi"; - sha256 = "11477z7mva8lwfxsrfxckvgqkxrjhc80czra8cqhpakf0fih1a4g"; + sha256 = "063m6rcdyf2zcrswkm56k8h3w15124bw5iykklzm60q5jk4ywn3f"; }; in buildGoPackage rec { @@ -18,18 +18,19 @@ in buildGoPackage rec { goPackagePath = "browsh"; + # further go package dependencies are defined in deps.nix, see line below. src = fetchFromGitHub { owner = "browsh-org"; repo = "browsh"; rev = "v${version}"; - sha256 = "0lvb20zziknlbgy509ccpvlc21sqjc53xar26blmb6sdl6yqkj0w"; + sha256 = "14addyb1zdk1b9mizfxdagyzlkd9nf5gawnbrs44j5a3ggnl14ln"; }; buildInputs = [ go-bindata ]; # embed the web extension in a go file and place it where it's supposed to # be. See - # https://github.com/browsh-org/browsh/blob/9abc3aaa3f575ca6ec9a483408d9fdfcf76300fa/interfacer/contrib/xpi2bin.sh + # https://github.com/browsh-org/browsh/blob/v1.5.0/interfacer/contrib/xpi2bin.sh preBuild = '' xpiprefix="$(mktemp -d)" cp "${webext}" "$xpiprefix/browsh.xpi" diff --git a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix index 6e96cf217f59..0de95c7d6a94 100644 --- a/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ b/nixpkgs/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -1,18 +1,18 @@ # This file is autogenerated from update.sh in the same directory. { beta = { - sha256 = "1b5hpf1j7ygvh15p11jswr8qf33b6k7l8nnsda93fya5bkc34mgd"; - sha256bin64 = "1mwia5l9zz858186m9kj2daq38jw75fipyhh3ncvhkw5hqggx0cd"; - version = "75.0.3770.18"; + sha256 = "01sw6ql4fr1zwbw4l4c3xgmd3jqil9lgmpmlhfyj9ga4kp2qlnim"; + sha256bin64 = "0xwxb54l1ylrckxd36pkzcla34d5hbnhxz3gkrv4id530l6ms6jh"; + version = "75.0.3770.27"; }; dev = { - sha256 = "1mmkj89pmbkgf6p7wb1q75j1rsrqcf7wncy3rl03rlhj64b231w7"; - sha256bin64 = "0mjcdg8las81lyrgyqymsb80k4wwzsib4sw3nyxd3cgrdxgc5vi9"; - version = "76.0.3783.0"; + sha256 = "0fq8sjyscz998ha4wnn4npr3bb4jslcjc1i7xgwz6bh4yhi1az4f"; + sha256bin64 = "1yb6ff6bg662klki7dcrdaysmsnqrnlp8syxcvwl2rysswll3wyl"; + version = "76.0.3788.1"; }; stable = { - sha256 = "11m9mlzrqzmz7rhl0ff7lry2s4yjrdkfi36qfv48m1cg5y2cfy6i"; - sha256bin64 = "034w01k0c84bx33agc2pj8149ff8rfxnsw371ankx0nzhjbn74ln"; - version = "74.0.3729.131"; + sha256 = "01ifjsss3nqr15xx2iqsiqgjq1xc07j7ljnapsb484m7dcfk3gnw"; + sha256bin64 = "0zkv4x4vbra476c6wy4igp6k80r9ssb9632wsyrzjni9w3zk9qvy"; + version = "74.0.3729.157"; }; } diff --git a/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix b/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix new file mode 100644 index 000000000000..26b3c3ace8bf --- /dev/null +++ b/nixpkgs/pkgs/applications/networking/browsers/ephemeral/default.nix @@ -0,0 +1,65 @@ +{ stdenv +, fetchFromGitHub +, desktop-file-utils +, gettext +, glib +, gtk3 +, hicolor-icon-theme +, libgee +, libdazzle +, meson +, ninja +, pantheon +, pkgconfig +, python3 +, webkitgtk +, wrapGAppsHook +, glib-networking +}: + +stdenv.mkDerivation rec { + pname = "ephemeral"; + version = "5.1.0"; + + src = fetchFromGitHub { + owner = "cassidyjames"; + repo = "ephemeral"; + rev = version; + sha256 = "1wfrbbdw429q2mkycn87fhci0jidcsflk5f2lbzfzccbcs8msffz"; + }; + + nativeBuildInputs = [ + desktop-file-utils + gettext + meson + ninja + pantheon.vala + pkgconfig + python3 + wrapGAppsHook + ]; + + buildInputs = [ + glib + glib-networking + gtk3 + hicolor-icon-theme + libdazzle + libgee + pantheon.granite + webkitgtk + ]; + + postPatch = '' + chmod +x meson/post_install.py + patchShebangs meson/post_install.py + ''; + + meta = with stdenv.lib; { + description = "The always-incognito web browser"; + homepage = https://github.com/cassidyjames/ephemeral; + maintainers = with maintainers; [ kjuvi ] ++ pantheon.maintainers; + platforms = platforms.linux; + license = licenses.gpl3; + }; +} diff --git a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix index c1764aa3d5fa..39351512a6a8 100644 --- a/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix +++ b/nixpkgs/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -16,11 +16,11 @@ let vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; in stdenv.mkDerivation rec { pname = "vivaldi"; - version = "2.5.1525.41-1"; + version = "2.5.1525.43-1"; src = fetchurl { url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; - sha256 = "0hdyk2f0jwp9rgzkqidksrmbri6lgihlgny6hpksfz132m00lv0b"; + sha256 = "0mmyl32fz6p43gz8vzkhh0z1wcb3l5cckxl8vkz53lb9k2mckjqi"; }; unpackPhase = '' diff --git a/nixpkgs/pkgs/applications/networking/gns3/default.nix b/nixpkgs/pkgs/applications/networking/gns3/default.nix index cda455d9e56e..2f588cd304d9 100644 --- a/nixpkgs/pkgs/applications/networking/gns3/default.nix +++ b/nixpkgs/pkgs/applications/networking/gns3/default.nix @@ -1,7 +1,7 @@ { callPackage, stdenv }: let - stableVersion = "2.1.16"; + stableVersion = "2.1.17"; previewVersion = "2.2.0a5"; addVersion = args: let version = if args.stable then stableVersion else previewVersion; @@ -9,8 +9,8 @@ let in args // { inherit version branch; }; mkGui = args: callPackage (import ./gui.nix (addVersion args)) { }; mkServer = args: callPackage (import ./server.nix (addVersion args)) { }; - guiSrcHash = "03d7yjdnks568njkrgyh7g6c3vf6v7wkifshz2bcvry79pp2h4nl"; - serverSrcHash = "0p331aaqxw16kk5l2074qn9a7ih6fkivm05n8da3fwydzp9hjmcp"; + guiSrcHash = "1caqb644nq0hhszlg3ac87730m1xmw48b17jisqiq7zmk9scsh40"; + serverSrcHash = "0zyfh5sw8r2n41v0nazgdbr50cz6g5an2myvlgj5xx41smr9gflb"; in { guiStable = mkGui { stable = true; diff --git a/nixpkgs/pkgs/applications/networking/gns3/server.nix b/nixpkgs/pkgs/applications/networking/gns3/server.nix index 556d341231f6..dcad3027e96b 100644 --- a/nixpkgs/pkgs/applications/networking/gns3/server.nix +++ b/nixpkgs/pkgs/applications/networking/gns3/server.nix @@ -47,6 +47,8 @@ in python.pkgs.buildPythonPackage { postPatch = '' # "typing" is only required for Python 3.4 and breaks Python 3.7: sed -iE "s/.*typing.*//" requirements.txt + # Only 2.x is problematic: + sed -iE "s/prompt-toolkit==1.0.15/prompt-toolkit<2.0.0/" requirements.txt ''; propagatedBuildInputs = with python.pkgs; [ diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix index 2d3a10cec5e4..5b3e09440a63 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/pidgin-plugins/sipe/default.nix @@ -1,24 +1,24 @@ -{ stdenv, fetchurl, pidgin, intltool, libxml2, nss, nspr }: +{ stdenv, fetchurl, pidgin, intltool, libxml2, gmime, nss }: -let version = "1.23.3"; in - -stdenv.mkDerivation { - name = "pidgin-sipe-${version}"; +stdenv.mkDerivation rec { + pname = "pidgin-sipe"; + version = "1.24.0"; src = fetchurl { - url = "mirror://sourceforge/sipe/pidgin-sipe-${version}.tar.gz"; - sha256 = "0aaiblnagncb0lhdwb8qbps6hxxmyfjg7sdi15lrkl98i3fahg4n"; + url = "mirror://sourceforge/sipe/${pname}-${version}.tar.gz"; + sha256 = "04cxprz6dbcsc4n2jg72mr1r9630nhrywn0zim9kwvbgps3wdd9c"; }; + nativeBuildInputs = [ intltool ]; + buildInputs = [ pidgin gmime libxml2 nss ]; + enableParallelBuilding = true; + + postInstall = "find $out -ls; ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe"; + meta = with stdenv.lib; { description = "SIPE plugin for Pidgin IM"; - homepage = http://sipe.sourceforge.net/; + homepage = "http://sipe.sourceforge.net/"; license = licenses.gpl2; platforms = platforms.linux; }; - - postInstall = "find $out -ls; ln -s \$out/lib/purple-2 \$out/share/pidgin-sipe"; - - buildInputs = [ pidgin intltool libxml2 nss nspr ]; - } diff --git a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix index 45d0dadbe902..b477a194faf1 100644 --- a/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix +++ b/nixpkgs/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -13,11 +13,11 @@ assert pulseaudioSupport -> libpulseaudio != null; let inherit (stdenv.lib) concatStringsSep makeBinPath optional; - version = "2.8.183302.0415"; + version = "2.8.222599.0519"; srcs = { x86_64-linux = fetchurl { url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz"; - sha256 = "07afq614fy09mjymmv3cf8vwa8ps78s2s4909g1a2rwvgkj8bw2x"; + sha256 = "0bmrqxz41pxcz41dcdbwd2b0hjv8fvix09jwxrnca4d50jq9fx7j"; }; }; diff --git a/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix index 79deab46912b..bc0918737dd5 100644 --- a/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix +++ b/nixpkgs/pkgs/applications/networking/mailreaders/lumail/default.nix @@ -10,7 +10,7 @@ let alternativeConfig = builtins.toFile "lumail2.lua" (builtins.readFile alternativeGlobalConfigFilePath); - globalConfig = if isNull alternativeGlobalConfigFilePath then '' + globalConfig = if alternativeGlobalConfigFilePath == null then '' mkdir -p $out/etc/lumail2 cp global.config.lua $out/etc/lumail2.lua for n in ./lib/*.lua; do diff --git a/nixpkgs/pkgs/applications/networking/sync/unison/default.nix b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix index 7862cc1e6e4f..ad5a35eb251f 100644 --- a/nixpkgs/pkgs/applications/networking/sync/unison/default.nix +++ b/nixpkgs/pkgs/applications/networking/sync/unison/default.nix @@ -20,8 +20,10 @@ stdenv.mkDerivation (rec { echo -e '\ninstall:\n\tcp $(FSMONITOR)$(EXEC_EXT) $(INSTALLDIR)' >> src/fsmonitor/linux/Makefile ''; - makeFlags = "INSTALLDIR=$(out)/bin/" + (if enableX11 then " UISTYLE=gtk2" else "") - + (if ! ocaml.nativeCompilers then " NATIVE=false" else ""); + makeFlags = [ + "INSTALLDIR=$(out)/bin/" + "UISTYLE=${if enableX11 then "gtk2" else "text"}" + ] ++ stdenv.lib.optional (!ocaml.nativeCompilers) "NATIVE=false"; preInstall = "mkdir -p $out/bin"; diff --git a/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock b/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock index f71f4eaa4085..9f2ea82cee05 100644 --- a/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock +++ b/nixpkgs/pkgs/applications/office/timetrap/Gemfile.lock @@ -16,4 +16,4 @@ DEPENDENCIES timetrap BUNDLED WITH - 1.10.6 + 1.17.2 diff --git a/nixpkgs/pkgs/applications/office/timetrap/default.nix b/nixpkgs/pkgs/applications/office/timetrap/default.nix index 20dd27fa2873..ad0d5c636f36 100644 --- a/nixpkgs/pkgs/applications/office/timetrap/default.nix +++ b/nixpkgs/pkgs/applications/office/timetrap/default.nix @@ -1,17 +1,15 @@ -{ lib, bundlerEnv, ruby }: +{ lib, bundlerApp }: -bundlerEnv rec { - name = "timetrap-${version}"; - - version = (import gemset).timetrap.version; - inherit ruby; +bundlerApp { + pname = "timetrap"; gemdir = ./.; - gemset = ./gemset.nix; + exes = [ "timetrap" ]; meta = with lib; { description = "A simple command line time tracker written in ruby"; - homepage = https://github.com/samg/timetrap; - license = licenses.mit; - maintainers = [ maintainers.jerith666 ]; + homepage = https://github.com/samg/timetrap; + license = licenses.mit; + maintainers = with maintainers; [ jerith666 manveru ]; + platforms = platforms.unix; }; } diff --git a/nixpkgs/pkgs/applications/office/timetrap/gemset.nix b/nixpkgs/pkgs/applications/office/timetrap/gemset.nix index 5764016573fc..1ea489b92c3f 100644 --- a/nixpkgs/pkgs/applications/office/timetrap/gemset.nix +++ b/nixpkgs/pkgs/applications/office/timetrap/gemset.nix @@ -1,5 +1,7 @@ { chronic = { + groups = ["default"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; sha256 = "1hrdkn4g8x7dlzxwb1rfgr8kw3bp4ywg5l4y4i9c2g5cwv62yvvn"; @@ -8,6 +10,8 @@ version = "0.10.2"; }; sequel = { + groups = ["default"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; sha256 = "121z4sq2m4vsgxwy8hs6d12cc1i4xa5rjiv0nbviyj87jldxapw0"; @@ -16,6 +20,8 @@ version = "4.43.0"; }; sqlite3 = { + groups = ["default"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; sha256 = "01ifzp8nwzqppda419c9wcvr8n82ysmisrs0hph9pdmv1lpa4f5i"; @@ -25,6 +31,8 @@ }; timetrap = { dependencies = ["chronic" "sequel" "sqlite3"]; + groups = ["default"]; + platforms = []; source = { remotes = ["https://rubygems.org"]; sha256 = "0ylaz9q99hbxnw6h1df6wphmh68fj847d1l4f9jylcx3nzzp5cyd"; diff --git a/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix b/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix new file mode 100644 index 000000000000..3464e134ee85 --- /dev/null +++ b/nixpkgs/pkgs/applications/science/biology/clustal-omega/default.nix @@ -0,0 +1,32 @@ +{ stdenv, fetchurl, argtable }: + +stdenv.mkDerivation rec { + version = "1.2.4"; + name = "clustal-omega-${version}"; + + src = fetchurl { + url = "http://www.clustal.org/omega/${name}.tar.gz"; + sha256 = "1vm30mzncwdv881vrcwg11vzvrsmwy4wg80j5i0lcfk6dlld50w6"; + }; + + buildInputs = [ argtable ]; + + preConfigure = '' + for f in configure \ + src/clustal-omega-config.h \ + src/clustal-omega-config.h \ + src/config.h.in \ + src/mymain.c + do + sed -i -re 's/argtable2/argtable3/g' $f + done + ''; + + meta = with stdenv.lib; { + description = "General purpose multiple sequence alignment program for protein and DNA/RNA"; + homepage = http://www.clustal.org/omega/; + license = licenses.gpl2; + maintainers = [ maintainers.bzizou ]; + platforms = platforms.unix; + }; +} diff --git a/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix b/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix index 35d21848e2b3..274afd5fc3d8 100644 --- a/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix +++ b/nixpkgs/pkgs/applications/science/chemistry/molden/default.nix @@ -1,12 +1,12 @@ { stdenv, fetchurl, which, gfortran, libGLU, xorg } : stdenv.mkDerivation rec { - version = "5.9.5"; + version = "6.1"; name = "molden-${version}"; src = fetchurl { url = "ftp://ftp.cmbi.ru.nl/pub/molgraph/molden/molden${version}.tar.gz"; - sha256 = "0va5g03kvnzydx0b77y1p536iy7swzvnx6yknp87qgpw1bgrzdj9"; + sha256 = "0swbjnqlkwhy8lvjkbx8yklqj4zfphwdg6s3haawxi3dd65ij539"; }; nativeBuildInputs = [ which ]; diff --git a/nixpkgs/pkgs/applications/science/math/cplex/default.nix b/nixpkgs/pkgs/applications/science/math/cplex/default.nix index dae5e1b76d35..dc0e9ea1aa5d 100644 --- a/nixpkgs/pkgs/applications/science/math/cplex/default.nix +++ b/nixpkgs/pkgs/applications/science/math/cplex/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { version = "128"; src = - if builtins.isNull releasePath then + if releasePath == null then throw '' This nix expression requires that the cplex installer is already downloaded to your machine. Get it from IBM: diff --git a/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix b/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix index 18060f342a92..5bb7eda47d5d 100644 --- a/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix +++ b/nixpkgs/pkgs/applications/science/math/sage/sage-with-env.nix @@ -59,7 +59,7 @@ let # return the names of all dependencies in the transitive closure transitiveClosure = dep: - if isNull dep then + if dep == null then # propagatedBuildInputs might contain null # (although that might be considered a programming error in the derivation) [] diff --git a/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix b/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix index 0b663b2fb63b..554ef695a4ac 100644 --- a/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix +++ b/nixpkgs/pkgs/applications/science/misc/simgrid/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, cmake, perl, python3, boost, valgrind +{ stdenv, fetchFromGitLab, cmake, perl, python3, boost, valgrind # Optional requirements # Lua 5.3 needed and not available now #, luaSupport ? false, lua5 @@ -17,14 +17,15 @@ let in stdenv.mkDerivation rec { - name = "simgrid-${version}"; - version = "3.21"; - - src = fetchFromGitHub { - owner = "simgrid"; - repo = "simgrid"; - rev = "v${replaceChars ["."] ["_"] version}"; - sha256 = "1v0dwlww2wl56ms8lvg5zwffzbmz3sjzpkqc73f714mrc9g02bxs"; + pname = "simgrid"; + version = "3.22.2"; + + src = fetchFromGitLab { + domain = "framagit.org"; + owner = pname; + repo = pname; + rev = "v${version}"; + sha256 = "02zzivp3k7n2yvlr79p9kapzxpxq9x4x7jf2vrkpkwnssv4f9b4p"; }; nativeBuildInputs = [ cmake perl python3 boost valgrind ] @@ -52,7 +53,7 @@ stdenv.mkDerivation rec { # - lua53: for enable_lua # # For more information see: - # http://simgrid.gforge.inria.fr/simgrid/latest/doc/install.html#install_cmake_list + # https://simgrid.org/doc/3.22/Installing_SimGrid.html#simgrid-compilation-options) cmakeFlags= '' -Denable_documentation=${optionOnOff buildDocumentation} -Denable_java=${optionOnOff buildJavaBindings} @@ -84,12 +85,11 @@ stdenv.mkDerivation rec { doCheck = true; - checkPhase = '' - runHook preCheck - - ctest -j $NIX_BUILD_CORES --output-on-failure -E smpi-replay-multiple - - runHook postCheck + # Prevent the execution of tests known to fail. + preCheck = '' + cat <<EOW >CTestCustom.cmake + SET(CTEST_CUSTOM_TESTS_IGNORE smpi-replay-multiple) + EOW ''; enableParallelBuilding = true; diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix index 35e9c17438f7..cea588f76ca2 100644 --- a/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/default.nix @@ -1,4 +1,4 @@ -{ stdenv, fetchFromGitHub, git, makeWrapper, openssl }: +{ stdenv, fetchFromGitHub, git, makeWrapper, openssl, coreutils, utillinux, gnugrep, gnused, gawk }: stdenv.mkDerivation rec { name = "transcrypt-${version}"; @@ -11,7 +11,9 @@ stdenv.mkDerivation rec { sha256 = "1dkr69plk16wllk5bzlkchrzw63pk239dgbjhrb3mb61i065jdam"; }; - buildInputs = [ git makeWrapper openssl ]; + buildInputs = [ makeWrapper git openssl coreutils utillinux gnugrep gnused gawk ]; + + patches = [ ./helper-scripts_depspathprefix.patch ]; installPhase = '' install -m 755 -D transcrypt $out/bin/transcrypt @@ -20,7 +22,13 @@ stdenv.mkDerivation rec { install -m 644 -D contrib/zsh/_transcrypt $out/share/zsh/site-functions/_transcrypt wrapProgram $out/bin/transcrypt \ - --prefix PATH : "${stdenv.lib.makeBinPath [ git openssl ]}" + --prefix PATH : "${stdenv.lib.makeBinPath [ git openssl coreutils utillinux gnugrep gnused gawk ]}" + + cat > $out/bin/transcrypt-depspathprefix << EOF + #!${stdenv.shell} + echo "${stdenv.lib.makeBinPath [ git openssl coreutils gawk ]}:" + EOF + chmod +x $out/bin/transcrypt-depspathprefix ''; meta = with stdenv.lib; { diff --git a/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch new file mode 100644 index 000000000000..925aadab3dd5 --- /dev/null +++ b/nixpkgs/pkgs/applications/version-management/git-and-tools/transcrypt/helper-scripts_depspathprefix.patch @@ -0,0 +1,37 @@ +diff --git a/transcrypt b/transcrypt +index a0b562d..7888f5d 100755 +--- a/transcrypt ++++ b/transcrypt +@@ -278,6 +278,7 @@ save_helper_scripts() { + + cat <<-'EOF' > "${GIT_DIR}/crypt/clean" + #!/usr/bin/env bash ++ PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH" + filename=$1 + # ignore empty files + if [[ -s $filename ]]; then +@@ -300,6 +301,7 @@ save_helper_scripts() { + + cat <<-'EOF' > "${GIT_DIR}/crypt/smudge" + #!/usr/bin/env bash ++ PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH" + tempfile=$(mktemp 2> /dev/null || mktemp -t tmp) + trap 'rm -f "$tempfile"' EXIT + cipher=$(git config --get --local transcrypt.cipher) +@@ -309,6 +311,7 @@ save_helper_scripts() { + + cat <<-'EOF' > "${GIT_DIR}/crypt/textconv" + #!/usr/bin/env bash ++ PATH="$(transcrypt-depspathprefix 2>/dev/null)$PATH" + filename=$1 + # ignore empty files + if [[ -s $filename ]]; then +@@ -351,7 +354,7 @@ save_configuration() { + git config merge.renormalize 'true' + + # add a git alias for listing encrypted files +- git config alias.ls-crypt "!git ls-files | git check-attr --stdin filter | awk 'BEGIN { FS = \":\" }; /crypt$/{ print \$1 }'" ++ git config alias.ls-crypt "!PATH=\"\$(transcrypt-depspathprefix 2>/dev/null)\$PATH\"; git ls-files | git check-attr --stdin filter | awk 'BEGIN { FS = \":\" }; /crypt$/{ print \$1 }'" + } + + # display the current configuration settings diff --git a/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix index 67c07072d41f..92ba57382501 100644 --- a/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix +++ b/nixpkgs/pkgs/applications/version-management/git-lfs/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { name = "git-lfs-${version}"; - version = "2.5.2"; + version = "2.7.2"; goPackagePath = "github.com/git-lfs/git-lfs"; @@ -10,7 +10,7 @@ buildGoPackage rec { rev = "v${version}"; owner = "git-lfs"; repo = "git-lfs"; - sha256 = "1y9l35j59d422v9hsbi117anm5d0177nspiy9r2zbjz3ygd9a4ck"; + sha256 = "1nf40rbdz901vsahg5cm09pznpina6wimmxl0lmh8pn0mi51yzvc"; }; preBuild = '' diff --git a/nixpkgs/pkgs/applications/version-management/pijul/default.nix b/nixpkgs/pkgs/applications/version-management/pijul/default.nix index b97123926eb5..4f716251153c 100644 --- a/nixpkgs/pkgs/applications/version-management/pijul/default.nix +++ b/nixpkgs/pkgs/applications/version-management/pijul/default.nix @@ -1,17 +1,17 @@ -{ stdenv, fetchurl, rustPlatform, darwin, openssl, libsodium, pkgconfig }: +{ stdenv, fetchurl, rustPlatform, darwin, openssl, libsodium, nettle, clang, libclang, pkgconfig }: with rustPlatform; buildRustPackage rec { name = "pijul-${version}"; - version = "0.11.0"; + version = "0.12.0"; src = fetchurl { url = "https://pijul.org/releases/${name}.tar.gz"; - sha256 = "e60793ab124e9054c1d5509698acbae507ebb2fab5364d964067bc9ae8b6b5e5"; + sha256 = "1rm787kkh3ya8ix0rjvj7sbrg9armm0rnpkga6gjmsbg5bx20y4q"; }; - nativeBuildInputs = [ pkgconfig ]; + nativeBuildInputs = [ pkgconfig clang ]; postInstall = '' mkdir -p $out/share/{bash-completion/completions,zsh/site-functions,fish/vendor_completions.d} @@ -20,12 +20,14 @@ buildRustPackage rec { $out/bin/pijul generate-completions --fish > $out/share/fish/vendor_completions.d/pijul.fish ''; - buildInputs = [ openssl libsodium ] ++ stdenv.lib.optionals stdenv.isDarwin + LIBCLANG_PATH = libclang + "/lib"; + + buildInputs = [ openssl libsodium nettle libclang ] ++ stdenv.lib.optionals stdenv.isDarwin (with darwin.apple_sdk.frameworks; [ Security ]); doCheck = false; - cargoSha256 = "1r76azmka1d76ff0ddfhzr24b0ry496qrp13945i3vs0fgzk2sdz"; + cargoSha256 = "1w77s5q18yr1gqqif15wmrfdvv2chq8rq3w4dnmxg2gn0r7bmz2k"; meta = with stdenv.lib; { description = "A distributed version control system"; diff --git a/nixpkgs/pkgs/applications/video/devede/default.nix b/nixpkgs/pkgs/applications/video/devede/default.nix index 48c5032f2da2..4802d259fb23 100644 --- a/nixpkgs/pkgs/applications/video/devede/default.nix +++ b/nixpkgs/pkgs/applications/video/devede/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchFromGitHub, python3Packages, ffmpeg, mplayer, vcdimager, cdrkit, dvdauthor -, gtk3, gettext, wrapGAppsHook, gdk_pixbuf }: +, gtk3, gettext, wrapGAppsHook, gdk_pixbuf, gobject-introspection }: let inherit (python3Packages) dbus-python buildPythonApplication pygobject3 urllib3; @@ -15,8 +15,18 @@ in buildPythonApplication rec { sha256 = "0ncb8nykchrjlllbzfjpvirmfvfaps9qhilc56kvcw3nzqrnkx8q"; }; + # Temporary fix + # See https://github.com/NixOS/nixpkgs/issues/61578 + # and https://github.com/NixOS/nixpkgs/issues/56943 + strictDeps = false; + nativeBuildInputs = [ gettext wrapGAppsHook + + # Temporary fix + # See https://github.com/NixOS/nixpkgs/issues/61578 + # and https://github.com/NixOS/nixpkgs/issues/56943 + gobject-introspection ]; buildInputs = [ diff --git a/nixpkgs/pkgs/applications/video/kodi/plugins.nix b/nixpkgs/pkgs/applications/video/kodi/plugins.nix index 91fd7eab1268..b9976e540196 100644 --- a/nixpkgs/pkgs/applications/video/kodi/plugins.nix +++ b/nixpkgs/pkgs/applications/video/kodi/plugins.nix @@ -59,7 +59,7 @@ let self = rec { extraRuntimeDependencies = [ ]; installPhase = '' - ${if isNull sourceDir then "" else "cd $src/$sourceDir"} + ${if sourceDir == null then "" else "cd $src/$sourceDir"} d=$out${pluginDir}/${namespace} mkdir -p $d sauce="." diff --git a/nixpkgs/pkgs/applications/video/wf-recorder/default.nix b/nixpkgs/pkgs/applications/video/wf-recorder/default.nix index 6a15132fd245..d52a4a6ab9b9 100644 --- a/nixpkgs/pkgs/applications/video/wf-recorder/default.nix +++ b/nixpkgs/pkgs/applications/video/wf-recorder/default.nix @@ -1,14 +1,16 @@ -{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, wayland, wayland-protocols, ffmpeg, x264, libpulseaudio }: +{ stdenv, fetchFromGitHub, meson, ninja, pkgconfig, wayland, wayland-protocols +, ffmpeg, x264, libpulseaudio +}: stdenv.mkDerivation rec { pname = "wf-recorder"; - version = "unstable-2019-04-21"; + version = "0.1"; src = fetchFromGitHub { owner = "ammen99"; repo = pname; - rev = "ddb96690556371007e316577ed1b14f0cb62e13c"; - sha256 = "04amfd1kyklcj6nmmmf21dz333ykglvhxb3cbzak06v2fxlrp2w3"; + rev = "v${version}"; + sha256 = "1rl75r87ijja9mfyrwrsz8r4zvjnhm0103qmgyhq2phlrdpkks5d"; }; nativeBuildInputs = [ meson ninja pkgconfig ]; diff --git a/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix b/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix new file mode 100644 index 000000000000..6e2790ef8590 --- /dev/null +++ b/nixpkgs/pkgs/applications/virtualization/cri-o/default.nix @@ -0,0 +1,75 @@ +{ flavor ? "" +, ldflags ? "" +, stdenv +, btrfs-progs +, buildGoPackage +, fetchFromGitHub +, glibc +, gpgme +, libapparmor +, libassuan +, libgpgerror +, libseccomp +, libselinux +, lvm2 +, pkgconfig +}: + +buildGoPackage rec { + project = "cri-o"; + version = "1.14.1"; + name = "${project}-${version}${flavor}"; + + goPackagePath = "github.com/${project}/${project}"; + + src = fetchFromGitHub { + owner = "cri-o"; + repo = "cri-o"; + rev = "v${version}"; + sha256 = "1cclxarwabk5zlqysm2dzgsm6qkxyzbnlylr0gs57ppn4ibky3nk"; + }; + + outputs = [ "bin" "out" ]; + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ btrfs-progs gpgme libapparmor libassuan libgpgerror + libseccomp libselinux lvm2 ] + ++ stdenv.lib.optionals (glibc != null) [ glibc glibc.static ]; + + makeFlags = ''BUILDTAGS="apparmor seccomp selinux + containers_image_ostree_stub"''; + + buildPhase = '' + pushd go/src/${goPackagePath} + + # Build conmon and pause + go build -tags ${makeFlags} -o bin/crio-config -buildmode=pie \ + -ldflags '-s -w ${ldflags}' ${goPackagePath}/cmd/crio-config + + pushd conmon + ../bin/crio-config + popd + + make -C conmon + make -C pause + + # Build the crio binary + go build -tags ${makeFlags} -o bin/crio -buildmode=pie \ + -ldflags '-s -w ${ldflags}' ${goPackagePath}/cmd/crio + ''; + installPhase = '' + install -Dm755 bin/crio $bin/bin/crio${flavor} + + mkdir -p $bin/libexec/crio + install -Dm755 bin/conmon $bin/libexec/crio/conmon${flavor} + install -Dm755 bin/pause $bin/libexec/crio/pause${flavor} + ''; + + meta = with stdenv.lib; { + homepage = https://cri-o.io; + description = ''Open Container Initiative-based implementation of the + Kubernetes Container Runtime Interface''; + license = licenses.asl20; + maintainers = with maintainers; [ saschagrunert ]; + platforms = platforms.linux; + }; +} |