diff options
author | Yury G. Kudryashov <urkud.urkud@gmail.com> | 2012-02-06 23:03:12 +0000 |
---|---|---|
committer | Yury G. Kudryashov <urkud.urkud@gmail.com> | 2012-02-06 23:03:12 +0000 |
commit | 215a07c1a9d6d208c1ba0037eccaaba7de9d6b68 (patch) | |
tree | f31e835b16c30957eb4ae3710cbfa922e8a64fbd /pkgs/applications | |
parent | b31c67e24d56c90a6732d3a310ff13684b73e200 (diff) | |
parent | 4e3dcd925499547314567107366cae26a99c4ef7 (diff) | |
download | nixlib-215a07c1a9d6d208c1ba0037eccaaba7de9d6b68.tar nixlib-215a07c1a9d6d208c1ba0037eccaaba7de9d6b68.tar.gz nixlib-215a07c1a9d6d208c1ba0037eccaaba7de9d6b68.tar.bz2 nixlib-215a07c1a9d6d208c1ba0037eccaaba7de9d6b68.tar.lz nixlib-215a07c1a9d6d208c1ba0037eccaaba7de9d6b68.tar.xz nixlib-215a07c1a9d6d208c1ba0037eccaaba7de9d6b68.tar.zst nixlib-215a07c1a9d6d208c1ba0037eccaaba7de9d6b68.zip |
svn merge ^/nixpkgs/trunk
Merge conflicts: * unzip (almost trivial) * dvswitch (trivial) * gmp (copied result of `git merge`) The last item introduced gmp-5.0.3, thus full rebuild. +ensureDir->mkdir -p in TeX packages was catched by git but not svn. svn path=/nixpkgs/branches/stdenv-updates/; revision=32091
Diffstat (limited to 'pkgs/applications')
26 files changed, 315 insertions, 1636 deletions
diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix index 38eb51b93dba..4711d0f29ea2 100644 --- a/pkgs/applications/audio/spotify/default.nix +++ b/pkgs/applications/audio/spotify/default.nix @@ -2,7 +2,7 @@ assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; -let version = "0.6.2.291"; in +let version = "0.6.6.10"; in stdenv.mkDerivation { name = "spotify-${version}"; @@ -10,13 +10,13 @@ stdenv.mkDerivation { src = if stdenv.system == "i686-linux" then fetchurl { - url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client-qt_${version}.gcccc1f5.116-1_i386.deb"; - sha256 = "164ka9xry9nbnv77w71kzi7bjidlmccw8wnn4fyzavi8pbrpmj08"; + url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client-qt_${version}.gbd39032.58-1_i386.deb"; + sha256 = "184wvw2jqihw7bbmd7pgz51nkzvk777imz9pvknv52mggai61523"; } else if stdenv.system == "x86_64-linux" then fetchurl { - url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client-qt_${version}.gcccc1f5.116-1_amd64.deb"; - sha256 = "08snnpqd5ldiqv98pwx3fjrhdlwp4arbgda9xnsy92wfk0s85lv8"; + url = "http://repository.spotify.com/pool/non-free/s/spotify/spotify-client-qt_${version}.gbd39032.58-1_amd64.deb"; + sha256 = "0qy4dgcl4y8ymqk8i9vgabik7mq0niqpbkwl3sk8z66znax4am4c"; } else throw "Spotify not supported on this platform."; diff --git a/pkgs/applications/audio/xmms/alsa.patch b/pkgs/applications/audio/xmms/alsa.patch deleted file mode 100644 index 62cf7354fd25..000000000000 --- a/pkgs/applications/audio/xmms/alsa.patch +++ /dev/null @@ -1,1475 +0,0 @@ -diff -rc xmms-1.2.10-orig/Output/alsa/alsa.h xmms-1.2.10/Output/alsa/alsa.h -*** xmms-1.2.10-orig/Output/alsa/alsa.h 2004-01-11 17:27:26.000000000 +0100 ---- xmms-1.2.10/Output/alsa/alsa.h 2006-01-27 00:28:49.000000000 +0100 -*************** -*** 50,57 **** - char *mixer_device; - int buffer_time; - int period_time; - gboolean debug; -- gboolean mmap; - struct - { - int left, right; ---- 50,57 ---- - char *mixer_device; - int buffer_time; - int period_time; -+ int thread_buffer_time; - gboolean debug; - struct - { - int left, right; -*************** -*** 65,72 **** - void alsa_about(void); - void alsa_configure(void); - int alsa_get_mixer(snd_mixer_t **mixer, int card); -- snd_mixer_elem_t* alsa_get_mixer_elem(snd_mixer_t *mixer, char *name, int index); -- int alsa_setup_mixer(void); - void alsa_save_config(void); - - void alsa_get_volume(int *l, int *r); ---- 65,70 ---- -diff -rc xmms-1.2.10-orig/Output/alsa/audio.c xmms-1.2.10/Output/alsa/audio.c -*** xmms-1.2.10-orig/Output/alsa/audio.c 2004-01-28 00:09:39.000000000 +0100 ---- xmms-1.2.10/Output/alsa/audio.c 2006-01-27 00:28:49.000000000 +0100 -*************** -*** 17,52 **** - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - */ - - #include "alsa.h" - #include <ctype.h> - #include <libxmms/xconvert.h> - - static snd_pcm_t *alsa_pcm = NULL; -- static snd_pcm_status_t *alsa_status = NULL; -- static snd_pcm_channel_area_t *areas = NULL; - - static snd_output_t *logs = NULL; - -! static int alsa_bps = 0; -! static guint64 alsa_total_written = 0; - - /* Set/Get volume */ - static snd_mixer_elem_t *pcm_element = NULL; - static snd_mixer_t *mixer = NULL; - -! static gboolean mmap, force_start, going, paused; - -! static gpointer buffer; - -- static int alsa_can_pause; - - struct snd_format { - unsigned int rate; - unsigned int channels; - snd_pcm_format_t format; - AFormat xmms_format; - }; - - static struct snd_format *inputf = NULL; ---- 17,72 ---- - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -+ * -+ * -+ * CHANGES -+ * -+ * 2005.01.05 Takashi Iwai <tiwai@suse.de> -+ * Impelemented the multi-threaded mode with an audio-thread. -+ * Many fixes and cleanups. - */ - - #include "alsa.h" - #include <ctype.h> -+ #include <pthread.h> - #include <libxmms/xconvert.h> - - static snd_pcm_t *alsa_pcm = NULL; - - static snd_output_t *logs = NULL; - -! static guint64 alsa_total_written = 0; /* input bytes */ -! static guint64 alsa_hw_written = 0; /* output bytes */ -! static gint output_time_offset = 0; -! -! /* device buffer/period sizes in bytes */ -! static int hw_buffer_size, hw_period_size; /* in output bytes */ -! static int hw_buffer_size_in, hw_period_size_in; /* in input bytes */ - - /* Set/Get volume */ - static snd_mixer_elem_t *pcm_element = NULL; - static snd_mixer_t *mixer = NULL; - -! static gboolean going, paused; - -! static gboolean alsa_can_pause; -! -! /* for audio thread */ -! static pthread_t audio_thread; /* audio loop thread */ -! static int thread_buffer_size; /* size of intermediate buffer in bytes */ -! static char *thread_buffer; /* audio intermediate buffer */ -! static int rd_index, wr_index; /* current read/write position in int-buffer */ -! static gboolean pause_request; /* pause status currently requested */ -! static gint flush_request; /* flush status (time) currently requested */ - - - struct snd_format { - unsigned int rate; - unsigned int channels; - snd_pcm_format_t format; - AFormat xmms_format; -+ int sample_bits; -+ int bps; - }; - - static struct snd_format *inputf = NULL; -*************** -*** 54,61 **** - static struct snd_format *outputf = NULL; - - static int alsa_setup(struct snd_format *f); -! static void alsa_mmap_audio(char *data, int length); -! static void alsa_write_audio(gpointer data, int length); - - static struct snd_format * snd_format_from_xmms(AFormat fmt, int rate, int channels); - ---- 74,80 ---- - static struct snd_format *outputf = NULL; - - static int alsa_setup(struct snd_format *f); -! static void alsa_write_audio(char *data, int length); - - static struct snd_format * snd_format_from_xmms(AFormat fmt, int rate, int channels); - -*************** -*** 71,92 **** - } format_table[] = - {{FMT_S16_LE, SND_PCM_FORMAT_S16_LE}, - {FMT_S16_BE, SND_PCM_FORMAT_S16_BE}, -! {FMT_S16_NE, -! #ifdef WORDS_BIGENDIAN -! SND_PCM_FORMAT_S16_BE -! #else -! SND_PCM_FORMAT_S16_LE -! #endif -! }, - {FMT_U16_LE, SND_PCM_FORMAT_U16_LE}, - {FMT_U16_BE, SND_PCM_FORMAT_U16_BE}, -! {FMT_U16_NE, -! #ifdef WORDS_BIGENDIAN -! SND_PCM_FORMAT_U16_BE -! #else -! SND_PCM_FORMAT_U16_LE -! #endif -! }, - {FMT_U8, SND_PCM_FORMAT_U8}, - {FMT_S8, SND_PCM_FORMAT_S8}, - }; ---- 90,99 ---- - } format_table[] = - {{FMT_S16_LE, SND_PCM_FORMAT_S16_LE}, - {FMT_S16_BE, SND_PCM_FORMAT_S16_BE}, -! {FMT_S16_NE, SND_PCM_FORMAT_S16}, - {FMT_U16_LE, SND_PCM_FORMAT_U16_LE}, - {FMT_U16_BE, SND_PCM_FORMAT_U16_BE}, -! {FMT_U16_NE, SND_PCM_FORMAT_U16}, - {FMT_U8, SND_PCM_FORMAT_U8}, - {FMT_S8, SND_PCM_FORMAT_S8}, - }; -*************** -*** 106,281 **** - } - } - -! int alsa_playing(void) -! { -! if (!going || paused) -! return FALSE; -! -! return(snd_pcm_state(alsa_pcm) == SND_PCM_STATE_RUNNING); -! } -! -! static void xrun_recover(void) -! { -! int err; -! -! if (alsa_cfg.debug) -! { -! snd_pcm_status_alloca(&alsa_status); -! if ((err = snd_pcm_status(alsa_pcm, alsa_status)) < 0) -! g_warning("xrun_recover(): snd_pcm_status() failed"); -! else -! { -! printf("Status:\n"); -! snd_pcm_status_dump(alsa_status, logs); -! } -! } -! -! if (snd_pcm_state(alsa_pcm) == SND_PCM_STATE_XRUN) -! { -! if ((err = snd_pcm_prepare(alsa_pcm)) < 0) -! g_warning("xrun_recover(): snd_pcm_prepare() failed."); -! } -! } -! -! static snd_pcm_sframes_t alsa_get_avail(void) -! { -! snd_pcm_sframes_t ret; -! if ((ret = snd_pcm_avail_update(alsa_pcm)) == -EPIPE) -! xrun_recover(); -! else if (ret < 0) -! { -! g_warning("alsa_get_avail(): snd_pcm_avail_update() failed: %s", -! snd_strerror(-ret)); -! return 0; -! } -! else -! return ret; -! if ((ret = snd_pcm_avail_update(alsa_pcm)) < 0) -! { -! g_warning("alsa_get_avail(): snd_pcm_avail_update() failed: %s", -! snd_strerror(-ret)); -! return 0; -! } -! return ret; -! } -! -! int alsa_free(void) -! { -! if (paused) -! return 0; -! else -! { -! int err; -! if (force_start && -! snd_pcm_state(alsa_pcm) == SND_PCM_STATE_PREPARED) -! { -! if ((err = snd_pcm_start(alsa_pcm)) < 0) -! g_warning("alsa_free(): snd_pcm_start() " -! "failed: %s", snd_strerror(-err)); -! else -! debug("Stream started"); -! } -! force_start = TRUE; -! -! return snd_pcm_frames_to_bytes(alsa_pcm, alsa_get_avail()); -! } -! } -! -! void alsa_pause(short p) -! { -! debug("alsa_pause"); -! if (p) -! paused = TRUE; -! -! if (alsa_can_pause) -! snd_pcm_pause(alsa_pcm, p); -! else if (p) -! snd_pcm_drop(alsa_pcm); -! -! if (!p) -! paused = FALSE; -! } -! -! void alsa_close(void) -! { -! int err, started; -! -! debug("Closing device"); -! -! started = going; -! going = 0; -! -! pcm_element = NULL; -! -! if (mixer) -! { -! snd_mixer_close(mixer); -! mixer = NULL; -! } -! -! if (alsa_pcm != NULL) -! { -! if (started) -! if ((err = snd_pcm_drop(alsa_pcm)) < 0) -! g_warning("alsa_pcm_drop() failed: %s", -! snd_strerror(-err)); -! -! if ((err = snd_pcm_close(alsa_pcm)) < 0) -! g_warning("alsa_pcm_close() failed: %s", -! snd_strerror(-err)); -! alsa_pcm = NULL; -! } -! -! if (mmap) { -! g_free(buffer); -! buffer = NULL; -! -! g_free(areas); -! areas = NULL; -! } -! -! xmms_convert_buffers_destroy(convertb); -! convertb = NULL; -! g_free(inputf); -! inputf = NULL; -! g_free(effectf); -! effectf = NULL; -! -! alsa_save_config(); -! -! debug("Device closed"); -! } -! -! static void alsa_reopen(struct snd_format *f) -! { -! unsigned int tmp = alsa_get_written_time(); -! -! if (alsa_pcm != NULL) -! { -! snd_pcm_close(alsa_pcm); -! alsa_pcm = NULL; -! } -! -! if (mmap) { -! g_free(buffer); -! buffer = NULL; -! -! g_free(areas); -! areas = NULL; -! } -! -! if (alsa_setup(f) < 0) -! g_warning("Failed to reopen the audio device"); -! -! alsa_total_written = tmp; -! snd_pcm_prepare(alsa_pcm); -! } -! -! void alsa_flush(int time) -! { -! alsa_total_written = (guint64) time * alsa_bps / 1000; -! } -! - static void parse_mixer_name(char *str, char **name, int *index) - { - char *end; ---- 113,121 ---- - } - } - -! /* -! * mixer stuff -! */ - static void parse_mixer_name(char *str, char **name, int *index) - { - char *end; -*************** -*** 337,343 **** - } - - -! snd_mixer_elem_t* alsa_get_mixer_elem(snd_mixer_t *mixer, char *name, int index) - { - snd_mixer_selem_id_t *selem_id; - snd_mixer_elem_t* elem; ---- 177,183 ---- - } - - -! static snd_mixer_elem_t* alsa_get_mixer_elem(snd_mixer_t *mixer, char *name, int index) - { - snd_mixer_selem_id_t *selem_id; - snd_mixer_elem_t* elem; -*************** -*** 353,359 **** - return elem; - } - -! int alsa_setup_mixer(void) - { - char *name; - long int a, b; ---- 193,199 ---- - return elem; - } - -! static int alsa_setup_mixer(void) - { - char *name; - long int a, b; -*************** -*** 406,411 **** ---- 246,260 ---- - return 0; - } - -+ static void alsa_cleanup_mixer(void) -+ { -+ pcm_element = NULL; -+ if (mixer) { -+ snd_mixer_close(mixer); -+ mixer = NULL; -+ } -+ } -+ - void alsa_get_volume(int *l, int *r) - { - static gboolean first = TRUE; -*************** -*** 461,485 **** - } - - - int alsa_get_output_time(void) - { - snd_pcm_sframes_t delay; -! ssize_t db = 0; - -! if (!going) - return 0; - -! if (!snd_pcm_delay(alsa_pcm, &delay)) -! db = snd_pcm_frames_to_bytes(alsa_pcm, delay); -! -! if (db < alsa_total_written) -! return ((alsa_total_written - db) * 1000 / alsa_bps); -! return 0; - } - - int alsa_get_written_time(void) - { -! return (alsa_total_written * 1000 / alsa_bps); - } - - #define STEREO_ADJUST(type, type2, endian) \ ---- 310,512 ---- - } - - -+ /* -+ * audio stuff -+ */ -+ -+ int alsa_playing(void) -+ { -+ if (!going || paused || alsa_pcm == NULL) -+ return FALSE; -+ -+ return(snd_pcm_state(alsa_pcm) == SND_PCM_STATE_RUNNING); -+ } -+ -+ -+ /* handle generic errors */ -+ static int alsa_handle_error(int err) -+ { -+ switch (err) { -+ case -EPIPE: /* XRUN */ -+ if (alsa_cfg.debug) { -+ snd_pcm_status_t *alsa_status; -+ snd_pcm_status_alloca(&alsa_status); -+ if (snd_pcm_status(alsa_pcm, alsa_status) < 0) -+ g_warning("xrun_recover(): snd_pcm_status() failed"); -+ else { -+ printf("Status:\n"); -+ snd_pcm_status_dump(alsa_status, logs); -+ } -+ } -+ return snd_pcm_prepare(alsa_pcm); -+ -+ case -ESTRPIPE: /* suspend */ -+ while ((err = snd_pcm_resume(alsa_pcm)) == -EAGAIN) -+ sleep(1); /* wait until suspend flag is released */ -+ if (err < 0) { -+ g_warning("suspend_recover(): snd_pcm_resume() failed."); -+ return snd_pcm_prepare(alsa_pcm); -+ } -+ break; -+ } -+ -+ return err; -+ } -+ -+ /* update and get the available space on h/w buffer (in frames) */ -+ static snd_pcm_sframes_t alsa_get_avail(void) -+ { -+ snd_pcm_sframes_t ret; -+ -+ if (alsa_pcm == NULL) -+ return 0; -+ -+ while ((ret = snd_pcm_avail_update(alsa_pcm)) < 0) { -+ ret = alsa_handle_error(ret); -+ if (ret < 0) { -+ g_warning("alsa_get_avail(): snd_pcm_avail_update() failed: %s", -+ snd_strerror(-ret)); -+ return 0; -+ } -+ } -+ return ret; -+ } -+ -+ /* do pause operation */ -+ static void alsa_do_pause(gboolean p) -+ { -+ if (paused == p) -+ return; -+ -+ if (alsa_pcm) { -+ if (alsa_can_pause) { -+ snd_pcm_pause(alsa_pcm, p); -+ } else if (p) { -+ snd_pcm_drop(alsa_pcm); -+ snd_pcm_prepare(alsa_pcm); -+ } -+ } -+ paused = p; -+ } -+ -+ void alsa_pause(short p) -+ { -+ debug("alsa_pause"); -+ pause_request = p; -+ } -+ -+ /* close PCM and release associated resources */ -+ static void alsa_close_pcm(void) -+ { -+ if (alsa_pcm) { -+ int err; -+ snd_pcm_drop(alsa_pcm); -+ if ((err = snd_pcm_close(alsa_pcm)) < 0) -+ g_warning("alsa_pcm_close() failed: %s", -+ snd_strerror(-err)); -+ alsa_pcm = NULL; -+ } -+ } -+ -+ /* reopen ALSA PCM */ -+ static int alsa_reopen(struct snd_format *f) -+ { -+ /* remember the current position */ -+ output_time_offset += (alsa_hw_written * 1000) / outputf->bps; -+ alsa_hw_written = 0; -+ -+ alsa_close_pcm(); -+ -+ return alsa_setup(f); -+ } -+ -+ /* do flush (drop) operation */ -+ static void alsa_do_flush(int time) -+ { -+ if (alsa_pcm) { -+ snd_pcm_drop(alsa_pcm); -+ snd_pcm_prepare(alsa_pcm); -+ } -+ /* correct the offset */ -+ output_time_offset = time; -+ alsa_total_written = (guint64) time * inputf->bps / 1000; -+ rd_index = wr_index = alsa_hw_written = 0; -+ } -+ -+ void alsa_flush(int time) -+ { -+ flush_request = time; -+ while (flush_request != -1) -+ xmms_usleep(10000); -+ } -+ -+ void alsa_close(void) -+ { -+ if (! going) -+ return; -+ -+ debug("Closing device"); -+ -+ going = 0; -+ -+ pthread_join(audio_thread, NULL); -+ -+ alsa_cleanup_mixer(); -+ -+ xmms_convert_buffers_destroy(convertb); -+ convertb = NULL; -+ g_free(inputf); -+ inputf = NULL; -+ g_free(effectf); -+ effectf = NULL; -+ g_free(outputf); -+ outputf = NULL; -+ -+ alsa_save_config(); -+ -+ if (alsa_cfg.debug) -+ snd_output_close(logs); -+ debug("Device closed"); -+ } -+ -+ /* return the size of audio data filled in the audio thread buffer */ -+ static int get_thread_buffer_filled(void) -+ { -+ int filled = wr_index - rd_index; -+ if (filled >= 0) -+ return filled; -+ return thread_buffer_size + filled; -+ } -+ -+ /* get the free space on buffer */ -+ int alsa_free(void) -+ { -+ return thread_buffer_size - get_thread_buffer_filled() - 1; -+ } -+ - int alsa_get_output_time(void) - { - snd_pcm_sframes_t delay; -! guint64 bytes = 0; - -! if (!going || alsa_pcm == NULL) - return 0; - -! if (!snd_pcm_delay(alsa_pcm, &delay)) { -! bytes = snd_pcm_frames_to_bytes(alsa_pcm, delay); -! if (alsa_hw_written < bytes) -! bytes = 0; -! else -! bytes = alsa_hw_written - bytes; -! } -! return output_time_offset + (bytes * 1000) / outputf->bps; - } - - int alsa_get_written_time(void) - { -! if (!going) -! return 0; -! return (alsa_total_written * 1000) / inputf->bps; - } - - #define STEREO_ADJUST(type, type2, endian) \ -*************** -*** 584,636 **** - } - - -! void alsa_write(gpointer data, int length) - { -! EffectPlugin *ep; - - if (paused) - return; - -! force_start = FALSE; -! -! if (effects_enabled() && (ep = get_current_effect_plugin())) -! { -! int new_freq = inputf->rate; -! int new_chn = inputf->channels; -! AFormat f = inputf->xmms_format; - -! if (ep->query_format) -! { -! ep->query_format(&f, &new_freq, &new_chn); -! -! if (f != effectf->xmms_format || -! new_freq != effectf->rate || -! new_chn != effectf->channels) -! { -! debug("Changing audio format for effect plugin"); -! -! g_free(effectf); -! effectf = snd_format_from_xmms(f, new_freq, -! new_chn); -! alsa_reopen(effectf); -! } -! -! } - - length = ep->mod_samples(&data, length, - inputf->xmms_format, - inputf->rate, - inputf->channels); - } -- else if (effectf) -- { -- g_free(effectf); -- effectf = NULL; -- effectf = snd_format_from_xmms(inputf->xmms_format, -- inputf->rate, -- inputf->channels); -- alsa_reopen(inputf); -- } - - if (alsa_convert_func != NULL) - length = alsa_convert_func(convertb, &data, length); ---- 611,657 ---- - } - - -! /* transfer data to audio h/w; length is given in bytes -! * -! * data can be modified via effect plugin, rate conversion or -! * software volume before passed to audio h/w -! */ -! static void alsa_do_write(gpointer data, int length) - { -! EffectPlugin *ep = NULL; -! int new_freq; -! int new_chn; -! AFormat f; - - if (paused) - return; - -! new_freq = inputf->rate; -! new_chn = inputf->channels; -! f = inputf->xmms_format; - -! if (effects_enabled() && (ep = get_current_effect_plugin()) && -! ep->query_format) -! ep->query_format(&f, &new_freq, &new_chn); - -+ if (f != effectf->xmms_format || new_freq != effectf->rate || -+ new_chn != effectf->channels) { -+ debug("Changing audio format for effect plugin"); -+ g_free(effectf); -+ effectf = snd_format_from_xmms(f, new_freq, new_chn); -+ if (alsa_reopen(effectf) < 0) { -+ /* fatal error... */ -+ alsa_close(); -+ return; -+ } -+ } -+ -+ if (ep) { - length = ep->mod_samples(&data, length, - inputf->xmms_format, - inputf->rate, - inputf->channels); - } - - if (alsa_convert_func != NULL) - length = alsa_convert_func(convertb, &data, length); -*************** -*** 644,656 **** - if (alsa_cfg.soft_volume) - volume_adjust(data, length, outputf->xmms_format, outputf->channels); - -! if (mmap) -! alsa_mmap_audio(data, length); -! else -! alsa_write_audio(data, length); - } - -! static void alsa_write_audio(gpointer data, int length) - { - snd_pcm_sframes_t written_frames; - ---- 665,693 ---- - if (alsa_cfg.soft_volume) - volume_adjust(data, length, outputf->xmms_format, outputf->channels); - -! alsa_write_audio(data, length); - } - -! /* write callback */ -! void alsa_write(gpointer data, int length) -! { -! int cnt; -! char *src = (char *)data; -! -! alsa_total_written += length; -! while (length > 0) { -! int wr; -! cnt = MIN(length, thread_buffer_size - wr_index); -! memcpy(thread_buffer + wr_index, src, cnt); -! wr = (wr_index + cnt) % thread_buffer_size; -! wr_index = wr; -! length -= cnt; -! src += cnt; -! } -! } -! -! /* transfer data to audio h/w via normal write */ -! static void alsa_write_audio(char *data, int length) - { - snd_pcm_sframes_t written_frames; - -*************** -*** 663,735 **** - { - int written = snd_pcm_frames_to_bytes(alsa_pcm, - written_frames); -- alsa_total_written += written; - length -= written; -! data = (char*) data + written; - } -! else if (written_frames == -EPIPE) -! xrun_recover(); -! else -! { -! g_warning("alsa_write_audio(): write error: %s", -! snd_strerror(-written_frames)); -! break; - } - } - } - -! static void alsa_mmap_audio(char *data, int length) - { -! int cnt = 0, err; -! snd_pcm_uframes_t offset, frames, frame; -! const snd_pcm_channel_area_t *chan_areas = areas; -! int channel_offset = 0, channel; -! ssize_t sample_size, offset_bytes, step; -! -! alsa_get_avail(); - -! while (length > 0) -! { -! frames = snd_pcm_bytes_to_frames(alsa_pcm, length); -! if ((err = snd_pcm_mmap_begin(alsa_pcm, &chan_areas, &offset, &frames) < 0)) -! g_warning("alsa_mmap_audio(): snd_pcm_mmap_begin() " -! "failed: %s", snd_strerror(-err)); -! -! cnt = snd_pcm_frames_to_bytes(alsa_pcm, frames); -! -! sample_size = snd_pcm_samples_to_bytes(alsa_pcm, 1); -! step = chan_areas[0].step / 8; -! offset_bytes = offset * step; - -! for (frame = 0; frame < frames; frame++) -! { -! for (channel = 0; channel < outputf->channels; channel++) -! { -! char *ptr = chan_areas[channel].addr; -! memcpy(ptr + chan_areas[channel].first / 8 + -! offset_bytes, -! data + channel_offset, sample_size); -! channel_offset += sample_size; - } -! offset_bytes += step; - } -- -- err = snd_pcm_mmap_commit(alsa_pcm, offset, frames); -- if (err == -EPIPE) -- xrun_recover(); -- else if (err < 0) -- g_warning("alsa_mmap_audio(): snd_pcm_mmap_commit() " -- "failed: %s", snd_strerror(-err)); -- else if (err != frames) -- g_warning("alsa_mmap_audio(): snd_pcm_mmap_commit " -- "returned %d, expected %d", err, (int)frames); -- -- alsa_total_written += cnt; -- -- length -= cnt; - } - } - - int alsa_open(AFormat fmt, int rate, int nch) - { - debug("Opening device"); ---- 700,785 ---- - { - int written = snd_pcm_frames_to_bytes(alsa_pcm, - written_frames); - length -= written; -! data += written; -! alsa_hw_written += written; - } -! else { -! int err = alsa_handle_error((int)written_frames); -! if (err < 0) { -! g_warning("alsa_write_audio(): write error: %s", -! snd_strerror(-err)); -! break; -! } - } - } - } - -! /* transfer audio data from thread buffer to h/w */ -! static void alsa_write_out_thread_data(void) - { -! gint length, cnt, avail; - -! length = MIN(hw_period_size_in, get_thread_buffer_filled()); -! avail = snd_pcm_frames_to_bytes(alsa_pcm, alsa_get_avail()); -! length = MIN(length, avail); -! while (length > 0) { -! int rd; -! cnt = MIN(length, thread_buffer_size - rd_index); -! alsa_do_write(thread_buffer + rd_index, cnt); -! rd = (rd_index + cnt) % thread_buffer_size; -! rd_index = rd; -! length -= cnt; -! } -! } - -! /* audio thread loop */ -! /* FIXME: proper lock? */ -! static void *alsa_loop(void *arg) -! { -! int npfds = snd_pcm_poll_descriptors_count(alsa_pcm); -! struct pollfd *pfds; -! unsigned short *revents; -! -! if (npfds <= 0) -! goto _error; -! pfds = alloca(sizeof(*pfds) * npfds); -! revents = alloca(sizeof(*revents) * npfds); -! while (going && alsa_pcm) { -! if (! paused && get_thread_buffer_filled() > hw_period_size_in) { -! snd_pcm_poll_descriptors(alsa_pcm, pfds, npfds); -! if (poll(pfds, npfds, 10) > 0) { -! /* need to check revents. poll() with dmix returns -! * a postive value even if no data is available -! */ -! int i; -! snd_pcm_poll_descriptors_revents(alsa_pcm, pfds, npfds, revents); -! for (i = 0; i < npfds; i++) -! if (revents[i] & POLLOUT) { -! alsa_write_out_thread_data(); -! break; -! } - } -! } else -! xmms_usleep(10000); -! -! if (pause_request != paused) -! alsa_do_pause(pause_request); -! -! if (flush_request != -1) { -! alsa_do_flush(flush_request); -! flush_request = -1; - } - } -+ -+ _error: -+ alsa_close_pcm(); -+ g_free(thread_buffer); -+ thread_buffer = NULL; -+ pthread_exit(NULL); - } - -+ /* open callback */ - int alsa_open(AFormat fmt, int rate, int nch) - { - debug("Opening device"); -*************** -*** 739,746 **** - if (alsa_cfg.debug) - snd_output_stdio_attach(&logs, stdout, 0); - -- mmap = alsa_cfg.mmap; -- - if (alsa_setup(inputf) < 0) - { - alsa_close(); ---- 789,794 ---- -*************** -*** 751,763 **** - - convertb = xmms_convert_buffers_new(); - -! alsa_total_written = 0; - going = TRUE; - paused = FALSE; -- force_start = FALSE; -- -- snd_pcm_prepare(alsa_pcm); - - return 1; - } - ---- 799,823 ---- - - convertb = xmms_convert_buffers_new(); - -! output_time_offset = 0; -! alsa_total_written = alsa_hw_written = 0; - going = TRUE; - paused = FALSE; - -+ thread_buffer_size = (guint64)alsa_cfg.thread_buffer_time * inputf->bps / 1000; -+ if (thread_buffer_size < hw_buffer_size) -+ thread_buffer_size = hw_buffer_size * 2; -+ if (thread_buffer_size < 8192) -+ thread_buffer_size = 8192; -+ thread_buffer_size += hw_buffer_size; -+ thread_buffer_size -= thread_buffer_size % hw_period_size; -+ thread_buffer = g_malloc0(thread_buffer_size); -+ wr_index = rd_index = 0; -+ pause_request = FALSE; -+ flush_request = -1; -+ -+ pthread_create(&audio_thread, NULL, alsa_loop, NULL); -+ - return 1; - } - -*************** -*** 787,792 **** ---- 847,854 ---- - - f->rate = rate; - f->channels = channels; -+ f->sample_bits = snd_pcm_format_physical_width(f->format); -+ f->bps = (rate * f->sample_bits * channels) >> 3; - - return f; - } -*************** -*** 806,812 **** - int err; - snd_pcm_hw_params_t *hwparams; - snd_pcm_sw_params_t *swparams; -! int alsa_buffer_time, bits_per_sample; - unsigned int alsa_period_time; - snd_pcm_uframes_t alsa_buffer_size, alsa_period_size; - ---- 868,874 ---- - int err; - snd_pcm_hw_params_t *hwparams; - snd_pcm_sw_params_t *swparams; -! int alsa_buffer_time; - unsigned int alsa_period_time; - snd_pcm_uframes_t alsa_buffer_size, alsa_period_size; - -*************** -*** 816,824 **** - alsa_stereo_convert_func = NULL; - alsa_frequency_convert_func = NULL; - -! outputf = snd_format_from_xmms(effectf->xmms_format, -! effectf->rate, -! effectf->channels); - - debug("Opening device: %s", alsa_cfg.pcm_device); - /* FIXME: Can snd_pcm_open() return EAGAIN? */ ---- 878,885 ---- - alsa_stereo_convert_func = NULL; - alsa_frequency_convert_func = NULL; - -! g_free(outputf); -! outputf = snd_format_from_xmms(f->xmms_format, f->rate, f->channels); - - debug("Opening device: %s", alsa_cfg.pcm_device); - /* FIXME: Can snd_pcm_open() return EAGAIN? */ -*************** -*** 829,838 **** - g_warning("alsa_setup(): Failed to open pcm device (%s): %s", - alsa_cfg.pcm_device, snd_strerror(-err)); - alsa_pcm = NULL; - return -1; - } -- snd_pcm_nonblock(alsa_pcm, FALSE); - - if (alsa_cfg.debug) - { - snd_pcm_info_t *info; ---- 890,903 ---- - g_warning("alsa_setup(): Failed to open pcm device (%s): %s", - alsa_cfg.pcm_device, snd_strerror(-err)); - alsa_pcm = NULL; -+ g_free(outputf); -+ outputf = NULL; - return -1; - } - -+ /* doesn't care about non-blocking */ -+ /* snd_pcm_nonblock(alsa_pcm, 0); */ -+ - if (alsa_cfg.debug) - { - snd_pcm_info_t *info; -*************** -*** 856,872 **** - return -1; - } - -! if (mmap && -! (err = snd_pcm_hw_params_set_access(alsa_pcm, hwparams, -! SND_PCM_ACCESS_MMAP_INTERLEAVED)) < 0) -! { -! g_message("alsa_setup(): Cannot set mmap'ed mode: %s. " -! "falling back to direct write", snd_strerror(-err)); -! mmap = 0; -! } -! -! if (!mmap && -! (err = snd_pcm_hw_params_set_access(alsa_pcm, hwparams, - SND_PCM_ACCESS_RW_INTERLEAVED)) < 0) - { - g_warning("alsa_setup(): Cannot set direct write mode: %s", ---- 921,927 ---- - return -1; - } - -! if ((err = snd_pcm_hw_params_set_access(alsa_pcm, hwparams, - SND_PCM_ACCESS_RW_INTERLEAVED)) < 0) - { - g_warning("alsa_setup(): Cannot set direct write mode: %s", -*************** -*** 894,910 **** - break; - } - } -! if (outputf->format != effectf->format) - { - outputf->xmms_format = - format_from_alsa(outputf->format); - debug("Converting format from %d to %d", -! effectf->xmms_format, outputf->xmms_format); - if (outputf->xmms_format < 0) - return -1; - alsa_convert_func = - xmms_convert_get_func(outputf->xmms_format, -! effectf->xmms_format); - if (alsa_convert_func == NULL) - return -1; - } ---- 949,965 ---- - break; - } - } -! if (outputf->format != f->format) - { - outputf->xmms_format = - format_from_alsa(outputf->format); - debug("Converting format from %d to %d", -! f->xmms_format, outputf->xmms_format); - if (outputf->xmms_format < 0) - return -1; - alsa_convert_func = - xmms_convert_get_func(outputf->xmms_format, -! f->xmms_format); - if (alsa_convert_func == NULL) - return -1; - } -*************** -*** 918,931 **** - } - - snd_pcm_hw_params_set_channels_near(alsa_pcm, hwparams, &outputf->channels); -! if (outputf->channels != effectf->channels) - { - debug("Converting channels from %d to %d", -! effectf->channels, outputf->channels); - alsa_stereo_convert_func = - xmms_convert_get_channel_func(outputf->xmms_format, - outputf->channels, -! effectf->channels); - if (alsa_stereo_convert_func == NULL) - return -1; - } ---- 973,986 ---- - } - - snd_pcm_hw_params_set_channels_near(alsa_pcm, hwparams, &outputf->channels); -! if (outputf->channels != f->channels) - { - debug("Converting channels from %d to %d", -! f->channels, outputf->channels); - alsa_stereo_convert_func = - xmms_convert_get_channel_func(outputf->xmms_format, - outputf->channels, -! f->channels); - if (alsa_stereo_convert_func == NULL) - return -1; - } -*************** -*** 936,945 **** - g_warning("alsa_setup(): No usable samplerate available."); - return -1; - } -! if (outputf->rate != effectf->rate) - { - debug("Converting samplerate from %d to %d", -! effectf->rate, outputf->rate); - alsa_frequency_convert_func = - xmms_convert_get_frequency_func(outputf->xmms_format, - outputf->channels); ---- 991,1000 ---- - g_warning("alsa_setup(): No usable samplerate available."); - return -1; - } -! if (outputf->rate != f->rate) - { - debug("Converting samplerate from %d to %d", -! f->rate, outputf->rate); - alsa_frequency_convert_func = - xmms_convert_get_frequency_func(outputf->xmms_format, - outputf->channels); -*************** -*** 947,960 **** - return -1; - } - -! alsa_buffer_time = alsa_cfg.buffer_time * 1000; -! if ((err = snd_pcm_hw_params_set_buffer_time_near(alsa_pcm, hwparams, -! &alsa_buffer_time, 0)) < 0) -! { -! g_warning("alsa_setup(): Set buffer time failed: %s.", -! snd_strerror(-err)); -! return -1; -! } - - alsa_period_time = alsa_cfg.period_time * 1000; - if ((err = snd_pcm_hw_params_set_period_time_near(alsa_pcm, hwparams, ---- 1002,1009 ---- - return -1; - } - -! outputf->sample_bits = snd_pcm_format_physical_width(outputf->format); -! outputf->bps = (outputf->rate * outputf->sample_bits * outputf->channels) >> 3; - - alsa_period_time = alsa_cfg.period_time * 1000; - if ((err = snd_pcm_hw_params_set_period_time_near(alsa_pcm, hwparams, -*************** -*** 965,970 **** ---- 1014,1028 ---- - return -1; - } - -+ alsa_buffer_time = alsa_cfg.buffer_time * 1000; -+ if ((err = snd_pcm_hw_params_set_buffer_time_near(alsa_pcm, hwparams, -+ &alsa_buffer_time, 0)) < 0) -+ { -+ g_warning("alsa_setup(): Set buffer time failed: %s.", -+ snd_strerror(-err)); -+ return -1; -+ } -+ - if (snd_pcm_hw_params(alsa_pcm, hwparams) < 0) - { - if (alsa_cfg.debug) -*************** -*** 1011,1037 **** - snd_pcm_dump(alsa_pcm, logs); - } - -! bits_per_sample = snd_pcm_format_physical_width(outputf->format); -! alsa_bps = (outputf->rate * bits_per_sample * outputf->channels) >> 3; -! -! if (mmap) -! { -! int chn; -! buffer = g_malloc(alsa_period_size * bits_per_sample / 8 * outputf->channels); -! areas = g_malloc0(outputf->channels * sizeof(snd_pcm_channel_area_t)); -! -! for (chn = 0; chn < outputf->channels; chn++) -! { -! areas[chn].addr = buffer; -! areas[chn].first = chn * bits_per_sample; -! areas[chn].step = outputf->channels * bits_per_sample; -! } - } - - debug("Device setup: buffer time: %i, size: %i.", alsa_buffer_time, -! snd_pcm_frames_to_bytes(alsa_pcm, alsa_buffer_size)); - debug("bits per sample: %i; frame size: %i; Bps: %i", -! bits_per_sample, snd_pcm_frames_to_bytes(alsa_pcm, 1), alsa_bps); - - return 0; - } ---- 1069,1096 ---- - snd_pcm_dump(alsa_pcm, logs); - } - -! hw_buffer_size = snd_pcm_frames_to_bytes(alsa_pcm, alsa_buffer_size); -! hw_period_size = snd_pcm_frames_to_bytes(alsa_pcm, alsa_period_size); -! if (inputf->bps != outputf->bps) { -! int align = (inputf->sample_bits * inputf->channels) / 8; -! hw_buffer_size_in = ((guint64)hw_buffer_size * inputf->bps + -! outputf->bps/2) / outputf->bps; -! hw_period_size_in = ((guint64)hw_period_size * inputf->bps + -! outputf->bps/2) / outputf->bps; -! hw_buffer_size_in -= hw_buffer_size_in % align; -! hw_period_size_in -= hw_period_size_in % align; -! } else { -! hw_buffer_size_in = hw_buffer_size; -! hw_period_size_in = hw_period_size; - } - - debug("Device setup: buffer time: %i, size: %i.", alsa_buffer_time, -! hw_buffer_size); -! debug("Device setup: period time: %i, size: %i.", alsa_period_time, -! hw_period_size); - debug("bits per sample: %i; frame size: %i; Bps: %i", -! snd_pcm_format_physical_width(outputf->format), -! snd_pcm_frames_to_bytes(alsa_pcm, 1), outputf->bps); - - return 0; - } -diff -rc xmms-1.2.10-orig/Output/alsa/configure.c xmms-1.2.10/Output/alsa/configure.c -*** xmms-1.2.10-orig/Output/alsa/configure.c 2004-01-28 00:09:39.000000000 +0100 ---- xmms-1.2.10/Output/alsa/configure.c 2006-01-27 00:28:49.000000000 +0100 -*************** -*** 20,27 **** - #include <stdio.h> - - static GtkWidget *configure_win = NULL; -! static GtkWidget *buffer_time_spin, *period_time_spin; -! static GtkWidget *mmap_button, *mixer_card_spin, *softvolume_toggle_button; - - static GtkWidget *devices_combo, *mixer_devices_combo; - ---- 20,27 ---- - #include <stdio.h> - - static GtkWidget *configure_win = NULL; -! static GtkWidget *buffer_time_spin, *period_time_spin, *thread_buffer_time_spin; -! static GtkWidget *mixer_card_spin, *softvolume_toggle_button; - - static GtkWidget *devices_combo, *mixer_devices_combo; - -*************** -*** 36,42 **** - alsa_cfg.pcm_device = GET_CHARS(GTK_COMBO(devices_combo)->entry); - alsa_cfg.buffer_time = GET_SPIN_INT(buffer_time_spin); - alsa_cfg.period_time = GET_SPIN_INT(period_time_spin); -! alsa_cfg.mmap = GET_TOGGLE(mmap_button); - alsa_cfg.soft_volume = GET_TOGGLE(softvolume_toggle_button); - alsa_cfg.mixer_card = GET_SPIN_INT(mixer_card_spin); - alsa_cfg.mixer_device = GET_CHARS(GTK_COMBO(mixer_devices_combo)->entry); ---- 36,42 ---- - alsa_cfg.pcm_device = GET_CHARS(GTK_COMBO(devices_combo)->entry); - alsa_cfg.buffer_time = GET_SPIN_INT(buffer_time_spin); - alsa_cfg.period_time = GET_SPIN_INT(period_time_spin); -! alsa_cfg.thread_buffer_time = GET_SPIN_INT(thread_buffer_time_spin); - alsa_cfg.soft_volume = GET_TOGGLE(softvolume_toggle_button); - alsa_cfg.mixer_card = GET_SPIN_INT(mixer_card_spin); - alsa_cfg.mixer_device = GET_CHARS(GTK_COMBO(mixer_devices_combo)->entry); -*************** -*** 51,57 **** - - xmms_cfg_write_int(cfgfile, "ALSA", "buffer_time", alsa_cfg.buffer_time); - xmms_cfg_write_int(cfgfile, "ALSA", "period_time", alsa_cfg.period_time); -! xmms_cfg_write_boolean(cfgfile,"ALSA","mmap",alsa_cfg.mmap); - xmms_cfg_write_string(cfgfile,"ALSA","pcm_device", alsa_cfg.pcm_device); - xmms_cfg_write_int(cfgfile, "ALSA", "mixer_card", alsa_cfg.mixer_card); - xmms_cfg_write_string(cfgfile,"ALSA","mixer_device", alsa_cfg.mixer_device); ---- 51,57 ---- - - xmms_cfg_write_int(cfgfile, "ALSA", "buffer_time", alsa_cfg.buffer_time); - xmms_cfg_write_int(cfgfile, "ALSA", "period_time", alsa_cfg.period_time); -! xmms_cfg_write_int(cfgfile, "ALSA", "thread_buffer_time", alsa_cfg.thread_buffer_time); - xmms_cfg_write_string(cfgfile,"ALSA","pcm_device", alsa_cfg.pcm_device); - xmms_cfg_write_int(cfgfile, "ALSA", "mixer_card", alsa_cfg.mixer_card); - xmms_cfg_write_string(cfgfile,"ALSA","mixer_device", alsa_cfg.mixer_device); -*************** -*** 212,219 **** - GtkWidget *dev_vbox, *adevice_frame, *adevice_box; - GtkWidget *mixer_frame, *mixer_box, *mixer_card_box; - GtkWidget *buffer_frame, *buffer_vbox, *buffer_table; -! GtkWidget *buffer_time_label, *period_time_label; -! GtkObject *buffer_time_adj, *period_time_adj, *mixer_card_adj; - GtkWidget *bbox, *ok, *cancel; - - if (configure_win) ---- 212,219 ---- - GtkWidget *dev_vbox, *adevice_frame, *adevice_box; - GtkWidget *mixer_frame, *mixer_box, *mixer_card_box; - GtkWidget *buffer_frame, *buffer_vbox, *buffer_table; -! GtkWidget *buffer_time_label, *period_time_label, *thread_buffer_time_label; -! GtkObject *buffer_time_adj, *period_time_adj, *thread_buffer_time_adj, *mixer_card_adj; - GtkWidget *bbox, *ok, *cancel; - - if (configure_win) -*************** -*** 312,318 **** - - gtk_container_set_border_width(GTK_CONTAINER(buffer_vbox), 5); - -! buffer_table = gtk_table_new(2, 2, FALSE); - gtk_table_set_row_spacings(GTK_TABLE(buffer_table), 5); - gtk_table_set_col_spacings(GTK_TABLE(buffer_table), 5); - gtk_box_pack_start(GTK_BOX(buffer_vbox), buffer_table, FALSE, FALSE, 0); ---- 312,318 ---- - - gtk_container_set_border_width(GTK_CONTAINER(buffer_vbox), 5); - -! buffer_table = gtk_table_new(2, 3, FALSE); - gtk_table_set_row_spacings(GTK_TABLE(buffer_table), 5); - gtk_table_set_col_spacings(GTK_TABLE(buffer_table), 5); - gtk_box_pack_start(GTK_BOX(buffer_vbox), buffer_table, FALSE, FALSE, 0); -*************** -*** 345,354 **** - gtk_table_attach(GTK_TABLE(buffer_table), period_time_spin, - 1, 2, 1, 2, 0, 0, 0, 0); - -! mmap_button = gtk_check_button_new_with_label(_("Mmap mode")); -! gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(mmap_button), -! alsa_cfg.mmap); -! gtk_box_pack_start(GTK_BOX(buffer_vbox), mmap_button, FALSE, FALSE, 0); - - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), buffer_frame, - gtk_label_new(_("Advanced settings"))); ---- 345,363 ---- - gtk_table_attach(GTK_TABLE(buffer_table), period_time_spin, - 1, 2, 1, 2, 0, 0, 0, 0); - -! thread_buffer_time_label = gtk_label_new(_("Thread buffer time (ms):")); -! gtk_label_set_justify(GTK_LABEL(thread_buffer_time_label), GTK_JUSTIFY_LEFT); -! gtk_misc_set_alignment(GTK_MISC(thread_buffer_time_label), 0, 0.5); -! gtk_table_attach(GTK_TABLE(buffer_table), thread_buffer_time_label, -! 0, 1, 2, 3, GTK_FILL, 0, 0, 0); -! thread_buffer_time_adj = gtk_adjustment_new(alsa_cfg.thread_buffer_time, -! 1000, 1000000, 100, 100, 100); -! thread_buffer_time_spin = gtk_spin_button_new(GTK_ADJUSTMENT(thread_buffer_time_adj), -! 8, 0); -! -! gtk_widget_set_usize(thread_buffer_time_spin, 60, -1); -! gtk_table_attach(GTK_TABLE(buffer_table), thread_buffer_time_spin, -! 1, 2, 2, 3, 0, 0, 0, 0); - - gtk_notebook_append_page(GTK_NOTEBOOK(notebook), buffer_frame, - gtk_label_new(_("Advanced settings"))); -diff -rc xmms-1.2.10-orig/Output/alsa/init.c xmms-1.2.10/Output/alsa/init.c -*** xmms-1.2.10-orig/Output/alsa/init.c 2004-01-11 17:27:26.000000000 +0100 ---- xmms-1.2.10/Output/alsa/init.c 2006-01-27 00:28:49.000000000 +0100 -*************** -*** 29,36 **** - memset(&alsa_cfg, 0, sizeof (alsa_cfg)); - alsa_cfg.buffer_time = 500; - alsa_cfg.period_time = 50; - alsa_cfg.debug = 0; -- alsa_cfg.mmap = 1; - alsa_cfg.vol.left = 100; - alsa_cfg.vol.right = 100; - ---- 29,36 ---- - memset(&alsa_cfg, 0, sizeof (alsa_cfg)); - alsa_cfg.buffer_time = 500; - alsa_cfg.period_time = 50; -+ alsa_cfg.thread_buffer_time = 3000; - alsa_cfg.debug = 0; - alsa_cfg.vol.left = 100; - alsa_cfg.vol.right = 100; - -*************** -*** 44,51 **** - xmms_cfg_read_int(cfgfile, "ALSA", "mixer_card", &alsa_cfg.mixer_card); - xmms_cfg_read_int(cfgfile, "ALSA", "buffer_time", &alsa_cfg.buffer_time); - xmms_cfg_read_int(cfgfile, "ALSA", "period_time", &alsa_cfg.period_time); -! xmms_cfg_read_boolean(cfgfile, "ALSA", "mmap", &alsa_cfg.mmap); -! xmms_cfg_read_int(cfgfile, "ALSA", "period_time", &alsa_cfg.period_time); - xmms_cfg_read_boolean(cfgfile, "ALSA", "soft_volume", - &alsa_cfg.soft_volume); - xmms_cfg_read_int(cfgfile, "ALSA", "volume_left", &alsa_cfg.vol.left); ---- 44,50 ---- - xmms_cfg_read_int(cfgfile, "ALSA", "mixer_card", &alsa_cfg.mixer_card); - xmms_cfg_read_int(cfgfile, "ALSA", "buffer_time", &alsa_cfg.buffer_time); - xmms_cfg_read_int(cfgfile, "ALSA", "period_time", &alsa_cfg.period_time); -! xmms_cfg_read_int(cfgfile, "ALSA", "thread_buffer_time", &alsa_cfg.thread_buffer_time); - xmms_cfg_read_boolean(cfgfile, "ALSA", "soft_volume", - &alsa_cfg.soft_volume); - xmms_cfg_read_int(cfgfile, "ALSA", "volume_left", &alsa_cfg.vol.left); diff --git a/pkgs/applications/audio/xmms/default.nix b/pkgs/applications/audio/xmms/default.nix deleted file mode 100644 index 6152e325bb61..000000000000 --- a/pkgs/applications/audio/xmms/default.nix +++ /dev/null @@ -1,21 +0,0 @@ -{stdenv, fetchurl, alsaLib, esound, libogg, libvorbis, glib, gtk}: - -stdenv.mkDerivation { - name = "xmms-1.2.10"; - - src = fetchurl { - url = http://nixos.org/tarballs/xmms-1.2.10.tar.bz2; - md5 = "03a85cfc5e1877a2e1f7be4fa1d3f63c"; - }; - - # Patch borrowed from SuSE 10.0 to fix pause/continue on ALSA. - patches = [./alsa.patch]; - - buildInputs = [alsaLib esound libogg libvorbis glib gtk]; - - meta = { - description = "A music player very similar to Winamp"; - homepage = http://www.xmms.org; - platforms = stdenv.lib.platforms.linux; - }; -} diff --git a/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix b/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix index 2e182170b191..a7ff4e624a11 100644 --- a/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix +++ b/pkgs/applications/editors/emacs-modes/emacs-w3m/default.nix @@ -1,6 +1,6 @@ { fetchcvs, stdenv, emacs, w3m, imagemagick, texinfo, autoconf }: -let date = "2009-07-09"; in +let date = "2012-01-15"; in stdenv.mkDerivation rec { name = "emacs-w3m-cvs${date}"; diff --git a/pkgs/applications/graphics/graphicsmagick/1.3.7.nix b/pkgs/applications/graphics/graphicsmagick/1.3.7.nix index 0d33cc757b90..291d61d5f6f5 100644 --- a/pkgs/applications/graphics/graphicsmagick/1.3.7.nix +++ b/pkgs/applications/graphics/graphicsmagick/1.3.7.nix @@ -27,5 +27,6 @@ stdenv.mkDerivation { homepage = http://www.graphicsmagick.org; description = "Swiss army knife of image processing"; license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.all; }; } diff --git a/pkgs/applications/graphics/graphicsmagick/default.nix b/pkgs/applications/graphics/graphicsmagick/default.nix index 980413bc8f81..0636903d329f 100644 --- a/pkgs/applications/graphics/graphicsmagick/default.nix +++ b/pkgs/applications/graphics/graphicsmagick/default.nix @@ -27,5 +27,6 @@ stdenv.mkDerivation { homepage = http://www.graphicsmagick.org; description = "Swiss army knife of image processing"; license = stdenv.lib.licenses.mit; + platforms = stdenv.lib.platforms.all; }; } diff --git a/pkgs/applications/misc/adobe-reader/default.nix b/pkgs/applications/misc/adobe-reader/default.nix index e56982a6680b..25bce4203eed 100644 --- a/pkgs/applications/misc/adobe-reader/default.nix +++ b/pkgs/applications/misc/adobe-reader/default.nix @@ -3,13 +3,13 @@ assert stdenv.system == "i686-linux"; stdenv.mkDerivation { - name = "adobe-reader-9.4.2-1"; + name = "adobe-reader-9.4.7-1"; builder = ./builder.sh; src = fetchurl { - url = http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/9.4.2/enu/AdbeRdr9.4.2-1_i486linux_enu.tar.bz2; - sha256 = "0xm8ngr7lslhxli9ly1g2w7ichip88vpf7lfx1ma0liaw4m2gv0h"; + url = http://ardownload.adobe.com/pub/adobe/reader/unix/9.x/9.4.7/enu/AdbeRdr9.4.7-1_i486linux_enu.tar.bz2; + sha256 = "0bzx1rcwc9bi5jkh8f8hjb354zxlvvx37lhm0l2r0mjxj8fimfb5"; }; # !!! Adobe Reader contains copies of OpenSSL, libcurl, and libicu. diff --git a/pkgs/applications/misc/goldendict/default.nix b/pkgs/applications/misc/goldendict/default.nix new file mode 100644 index 000000000000..881f5339bdf8 --- /dev/null +++ b/pkgs/applications/misc/goldendict/default.nix @@ -0,0 +1,31 @@ +{ stdenv, fetchurl, qt4, libXtst, libvorbis, phonon, hunspell }: +stdenv.mkDerivation rec { + name = "goldendict-1.0.1"; + src = fetchurl { + url = "mirror://sourceforge/goldendict/${name}-src.tar.bz2"; + sha256 = "19p99dd5jgs0k66sy30vck7ymqj6dv1lh6w8xw18zczdll2h9yxk"; + }; + buildInputs = [ qt4 libXtst libvorbis phonon hunspell ]; + unpackPhase = '' + mkdir ${name}-src + cd ${name}-src + tar xf ${src} + ''; + patches = [ ./goldendict-paths.diff ]; + patchFlags = "-p 0"; + configurePhase = '' + qmake + ''; + installPhase = '' + make INSTALL_ROOT="$out" install + rm -rf "$out/share/app-install" + ''; + + meta = { + homepage = http://goldendict.org/; + description = "a feature-rich dictionary lookup program"; + + platforms = stdenv.lib.platforms.linux; + maintainers = [ stdenv.lib.maintainers.astsmtl ]; + }; +} diff --git a/pkgs/applications/misc/goldendict/goldendict-paths.diff b/pkgs/applications/misc/goldendict/goldendict-paths.diff new file mode 100644 index 000000000000..6682911dbe42 --- /dev/null +++ b/pkgs/applications/misc/goldendict/goldendict-paths.diff @@ -0,0 +1,10 @@ +--- goldendict.pro~ 2010-12-27 22:52:21.000000000 +0100 ++++ goldendict.pro 2010-12-27 22:52:21.000000000 +0100 +@@ -63,2 +63,2 @@ +- isEmpty( PREFIX ):PREFIX = /usr/local +- DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/apps/goldendict/\\\" ++ isEmpty( PREFIX ):PREFIX = / ++ DEFINES += PROGRAM_DATA_DIR=\\\"$$PREFIX/share/goldendict/\\\" +@@ -66 +66 @@ +- locale.path = $$PREFIX/share/apps/goldendict/locale/ ++ locale.path = $$PREFIX/share/goldendict/locale/ diff --git a/pkgs/applications/misc/ikiwiki/default.nix b/pkgs/applications/misc/ikiwiki/default.nix index fc800dc22225..feb507c87320 100644 --- a/pkgs/applications/misc/ikiwiki/default.nix +++ b/pkgs/applications/misc/ikiwiki/default.nix @@ -13,14 +13,14 @@ assert monotoneSupport -> (monotone != null); let name = "ikiwiki"; - version = "3.20120109"; + version = "3.20120115"; in stdenv.mkDerivation { name = "${name}-${version}"; src = fetchurl { url = "http://ftp.de.debian.org/debian/pool/main/i/ikiwiki/${name}_${version}.tar.gz"; - sha256 = "0a47135c039f3dfd62162dd3b250397fcdab2dbb4bf4cf0433099f6e48d6f3e8"; + sha256 = "3145372b3d86068f90348a96f9daf3a3b438d747be0e977358d82ee752499c1f"; }; buildInputs = [ perl TextMarkdown URI HTMLParser HTMLScrubber HTMLTemplate diff --git a/pkgs/applications/misc/truecrypt/default.nix b/pkgs/applications/misc/truecrypt/default.nix index 906817fe5a26..bd7197534519 100644 --- a/pkgs/applications/misc/truecrypt/default.nix +++ b/pkgs/applications/misc/truecrypt/default.nix @@ -40,17 +40,17 @@ library, use the 'NOGUI' parameter: $ make NOGUI=1 */ -{ fetchurl, stdenv, pkgconfig, fuse, wxGTK, devicemapper, +{ fetchurl, stdenv, pkgconfig, nasm, fuse, wxGTK, devicemapper, wxGUI ? true }: stdenv.mkDerivation { - name = "truecrypt-6.3a"; + name = "truecrypt-7.1"; builder = ./builder.sh; src = fetchurl { - url = http://www.sfr-fresh.com/unix/misc/TrueCrypt_6.3a_Source.tar.gz; - sha256 = "1vwnzay9gjlldqbdb20rhq2arhyzhdy347qc00hkpqmv2b8z070y"; + url = http://fossies.org/unix/misc/TrueCrypt-7.1-Source.tar.gz; + sha256 = "1x6rdxcvklb3zpmgfc3mg5h71gzki1q55ljkzjab2vzkf9n5v0cl"; }; pkcs11h = fetchurl { @@ -68,7 +68,7 @@ stdenv.mkDerivation { sha256 = "5ae6a4f32ca737e02def3bf314c9842fb89be82bf00b6f4022a97d8d565522b8"; }; - buildInputs = [ pkgconfig fuse devicemapper wxGTK ]; + buildInputs = [ pkgconfig fuse devicemapper wxGTK nasm ]; makeFlags = if (wxGUI) then "" else "NOGUI=1"; meta = { diff --git a/pkgs/applications/networking/browsers/firefox/8.0.nix b/pkgs/applications/networking/browsers/firefox/10.0.nix index 823d6e0cbd28..79869b324b9b 100644 --- a/pkgs/applications/networking/browsers/firefox/8.0.nix +++ b/pkgs/applications/networking/browsers/firefox/10.0.nix @@ -15,14 +15,14 @@ assert stdenv.gcc ? libc && stdenv.gcc.libc != null; rec { - firefoxVersion = "8.0.1"; + firefoxVersion = "10.0"; - xulVersion = "8.0.1"; # this attribute is used by other packages + xulVersion = "10.0"; # this attribute is used by other packages src = fetchurl { url = "http://releases.mozilla.org/pub/mozilla.org/firefox/releases/${firefoxVersion}/source/firefox-${firefoxVersion}.source.tar.bz2"; - sha1 = "0dd207c5cee9d53114c55aa23eeca36b754bc128"; + sha1 = "cbf1fb0efe0a3a2b2dafaa324b136736e93de70c"; }; commonConfigureFlags = @@ -139,7 +139,7 @@ rec { [ "--enable-application=browser" "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}" "--enable-chrome-format=jar" - "--disable-elf-hack" + "--disable-elf-hack" ] ++ commonConfigureFlags ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding"; diff --git a/pkgs/applications/networking/browsers/firefox/11.0.nix b/pkgs/applications/networking/browsers/firefox/11.0.nix new file mode 100644 index 000000000000..fd72b51f5b58 --- /dev/null +++ b/pkgs/applications/networking/browsers/firefox/11.0.nix @@ -0,0 +1,180 @@ +{ stdenv, fetchurl, pkgconfig, gtk, pango, perl, python, zip, libIDL +, libjpeg, libpng, zlib, cairo, dbus, dbus_glib, bzip2, xlibs +, freetype, fontconfig, file, alsaLib, nspr, nss, libnotify +, yasm, mesa, sqlite, unzip + +, # If you want the resulting program to call itself "Firefox" instead + # of "Shiretoko" or whatever, enable this option. However, those + # binaries may not be distributed without permission from the + # Mozilla Foundation, see + # http://www.mozilla.org/foundation/trademarks/. + enableOfficialBranding ? false +}: + +assert stdenv.gcc ? libc && stdenv.gcc.libc != null; + +rec { + + firefoxVersion = "11.0b1"; + + xulVersion = "11.0"; # this attribute is used by other packages + + + src = fetchurl { + url = "http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/${firefoxVersion}-candidates/build1/source/firefox-${firefoxVersion}.source.tar.bz2"; + sha256 = "1f9p2jmjvhmb23wmvj84jj22wd9g803k6pdjm8glwmkzwnva8x1b"; + }; + + commonConfigureFlags = + [ "--enable-optimize" + "--disable-debug" + "--enable-strip" + "--with-system-jpeg" + "--with-system-zlib" + "--with-system-bz2" + #"--with-system-nspr" # <-- There are links to nspr 4.9.0, but no file... + # "--with-system-nss" + # "--with-system-png" # <-- "--with-system-png won't work because the system's libpng doesn't have APNG support" + "--enable-system-cairo" + "--enable-system-sqlite" + "--disable-crashreporter" + "--disable-tests" + "--disable-necko-wifi" # maybe we want to enable this at some point + "--disable-installer" + "--disable-updater" + ]; + + + xulrunner = stdenv.mkDerivation rec { + name = "xulrunner-${xulVersion}"; + + inherit src; + + buildInputs = + [ pkgconfig gtk perl zip libIDL libjpeg libpng zlib cairo bzip2 + python dbus dbus_glib pango freetype fontconfig xlibs.libXi + xlibs.libX11 xlibs.libXrender xlibs.libXft xlibs.libXt file + alsaLib nspr /* nss */ libnotify xlibs.pixman yasm mesa + xlibs.libXScrnSaver xlibs.scrnsaverproto + xlibs.libXext xlibs.xextproto sqlite unzip + ]; + + configureFlags = + [ "--enable-application=xulrunner" + "--disable-javaxpcom" + ] ++ commonConfigureFlags; + + enableParallelBuilding = true; + + # Hack to work around make's idea of -lbz2 dependency + preConfigure = + '' + find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${ + stdenv.lib.concatStringsSep ":" + (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc])) + }' ';' + + export NIX_LDFLAGS="$NIX_LDFLAGS -L$out/lib/xulrunner-${xulVersion}" + ''; + + # !!! Temporary hack. + preBuild = + '' + export NIX_ENFORCE_PURITY= + ''; + + installFlags = "SKIP_GRE_REGISTRATION=1"; + + postInstall = '' + # Fix some references to /bin paths in the Xulrunner shell script. + substituteInPlace $out/bin/xulrunner \ + --replace /bin/pwd "$(type -tP pwd)" \ + --replace /bin/ls "$(type -tP ls)" + + # Fix run-mozilla.sh search + libDir=$(cd $out/lib && ls -d xulrunner-[0-9]*) + echo libDir: $libDir + test -n "$libDir" + cd $out/bin + mv xulrunner ../lib/$libDir/ + + for i in $out/lib/$libDir/*; do + file $i; + if file $i | grep executable &>/dev/null; then + echo -e '#! /bin/sh\n"'"$i"'" "$@"' > "$out/bin/$(basename "$i")"; + chmod a+x "$out/bin/$(basename "$i")"; + fi; + done; + for i in $out/lib/$libDir/{xpcshell,plugin-container,*.so}; do + patchelf --set-rpath "$(patchelf --print-rpath "$i"):$out/lib/$libDir" $i || true + done; + rm -f $out/bin/run-mozilla.sh + ''; # */ + + meta = { + description = "Mozilla Firefox XUL runner"; + homepage = http://www.mozilla.com/en-US/firefox/; + }; + + passthru = { inherit gtk; version = xulVersion; }; + }; + + + firefox = stdenv.mkDerivation rec { + name = "firefox-${firefoxVersion}"; + + inherit src; + + enableParallelBuilding = true; + + buildInputs = + [ pkgconfig gtk perl zip libIDL libjpeg zlib cairo bzip2 python + dbus dbus_glib pango freetype fontconfig alsaLib nspr libnotify + xlibs.pixman yasm mesa sqlite file unzip + ]; + + propagatedBuildInputs = [xulrunner]; + + configureFlags = + [ "--enable-application=browser" + "--with-libxul-sdk=${xulrunner}/lib/xulrunner-devel-${xulrunner.version}" + "--enable-chrome-format=jar" + "--disable-elf-hack" + ] + ++ commonConfigureFlags + ++ stdenv.lib.optional enableOfficialBranding "--enable-official-branding"; + + # Hack to work around make's idea of -lbz2 dependency + preConfigure = + '' + find . -name Makefile.in -execdir sed -i '{}' -e '1ivpath %.so ${ + stdenv.lib.concatStringsSep ":" + (map (s : s + "/lib") (buildInputs ++ [stdenv.gcc.libc])) + }' ';' + ''; + + postInstall = + '' + ln -s ${xulrunner}/lib/xulrunner-${xulrunner.version} $(echo $out/lib/firefox-*)/xulrunner + for j in $out/bin/*; do + i="$(readlink "$j")"; + file $i; + if file $i | grep executable &>/dev/null; then + rm "$out/bin/$(basename "$i")" + echo -e '#! /bin/sh\nexec "'"$i"'" "$@"' > "$out/bin/$(basename "$i")" + chmod a+x "$out/bin/$(basename "$i")" + fi; + done; + ''; # */ + + meta = { + description = "Mozilla Firefox - the browser, reloaded"; + homepage = http://www.mozilla.com/en-US/firefox/; + }; + + passthru = { + inherit gtk xulrunner nspr; + isFirefox3Like = true; + }; + }; +} diff --git a/pkgs/applications/networking/browsers/links2/default.nix b/pkgs/applications/networking/browsers/links2/default.nix index 587a51509d61..4e5a3658730e 100644 --- a/pkgs/applications/networking/browsers/links2/default.nix +++ b/pkgs/applications/networking/browsers/links2/default.nix @@ -1,33 +1,44 @@ -a : -let - s = import ./src-for-default.nix; - buildInputs = with a; [ - libpng libjpeg bzip2 zlib libtiff - libX11 libXau xproto gpm - openssl libXt pkgconfig - ]; -in -rec { - src = a.fetchUrlFromSrcInfo s; +{ stdenv, fetchurl +, gpm, openssl, pkgconfig # Misc. +, libpng, libjpeg, libtiff # graphic formats +, bzip2, zlib, xz # Transfer encodings +, enableFB ? true +, enableDirectFB ? false, directfb +, enableX11 ? true, libX11, libXt, libXau # GUI support +}: - inherit (s) name; - inherit buildInputs; - configureFlags = [ - "--enable-graphics" - "--with-ssl" - "--with-x" - "--with-fb" - ]; +stdenv.mkDerivation rec { + version = "2.5"; + name = "links2-${version}"; + + src = fetchurl { + url = "${meta.homepage}/download/links-${version}.tar.bz2"; + sha256 = "1wlmj8s6bxgznh0pnawihyvhffzryciz3lkagcxhf7fp64zz5izm"; + }; + + buildInputs = + [ libpng libjpeg libtiff gpm openssl xz bzip2 zlib ] + ++ stdenv.lib.optionals enableX11 [ libX11 libXau libXt ] + ++ stdenv.lib.optional enableDirectFB [ directfb ]; + + buildNativeInputs = [ pkgconfig ]; + + configureFlags = [ "--with-ssl" ] + ++ stdenv.lib.optional (enableX11 || enableFB || enableDirectFB) "--enable-graphics" + ++ stdenv.lib.optional enableX11 "--with-x" + ++ stdenv.lib.optional enableFB "--with-fb" + ++ stdenv.lib.optional enableDirectFB "--with-directfb"; + + crossAttrs = { + preConfigure = '' + export CC=$crossConfig-gcc + ''; + }; - /* doConfigure should be removed if not needed */ - phaseNames = ["doConfigure" "doMakeInstall"]; - meta = { + homepage = http://links.twibright.com/; description = "A small browser with some graphics support"; - maintainers = [ - a.lib.maintainers.raskin - ]; - platforms = with a.lib.platforms; - linux; + maintainers = with stdenv.lib.maintainers; [ raskin urkud viric ]; + platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/applications/networking/browsers/links2/src-for-default.nix b/pkgs/applications/networking/browsers/links2/src-for-default.nix deleted file mode 100644 index 7e7da1a4641b..000000000000 --- a/pkgs/applications/networking/browsers/links2/src-for-default.nix +++ /dev/null @@ -1,9 +0,0 @@ -rec { - version="2.2"; - name="links2-2.2"; - hash="188y37rw4s9brl55ncc12q1b45w0caxcnsq1gqyby9byw1sawnq9"; - url="http://links.twibright.com/download/links-${version}.tar.gz"; - advertisedUrl="http://links.twibright.com/download/links-2.2.tar.gz"; - - -} diff --git a/pkgs/applications/networking/browsers/links2/src-info-for-default.nix b/pkgs/applications/networking/browsers/links2/src-info-for-default.nix deleted file mode 100644 index b678b251298e..000000000000 --- a/pkgs/applications/networking/browsers/links2/src-info-for-default.nix +++ /dev/null @@ -1,4 +0,0 @@ -{ - downloadPage = "http://links.twibright.com/download.php"; - baseName = "links2"; -} diff --git a/pkgs/applications/networking/browsers/links2/stdenv.nix b/pkgs/applications/networking/browsers/links2/stdenv.nix deleted file mode 100644 index 923d0aff0f5f..000000000000 --- a/pkgs/applications/networking/browsers/links2/stdenv.nix +++ /dev/null @@ -1,41 +0,0 @@ -{ stdenv, fetchurl, libpng, libjpeg, bzip2, zlib, libtiff, gpm, openssl, pkgconfig, directfb -, enableX11 ? true, libX11, libXau, xproto, libXt }: - -let - version="2.2"; - name="links2-2.2"; - hash="188y37rw4s9brl55ncc12q1b45w0caxcnsq1gqyby9byw1sawnq9"; - url="http://links.twibright.com/download/links-${version}.tar.gz"; - advertisedUrl="http://links.twibright.com/download/links-2.2.tar.gz"; -in - -stdenv.mkDerivation { - inherit name; - - src = fetchurl { - inherit url; - sha256 = hash; - }; - - buildInputs = [ libpng libjpeg bzip2 zlib libtiff gpm openssl pkgconfig directfb ] - ++ stdenv.lib.optionals enableX11 [ libX11 libXau xproto libXt ]; - - configureFlags = [ - "--enable-graphics" - "--with-ssl" - "--with-fb" - ] ++ stdenv.lib.optional enableX11 "--with-x"; - - crossAttrs = { - preConfigure = '' - export CC=$crossConfig-gcc - ''; - }; - - meta = { - description = "A small browser with some graphics support"; - maintainers = [ - stdenv.lib.maintainers.viric - ]; - }; -} diff --git a/pkgs/applications/networking/esniper/default.nix b/pkgs/applications/networking/esniper/default.nix index 4c153fa6ff5a..dda0755a7383 100644 --- a/pkgs/applications/networking/esniper/default.nix +++ b/pkgs/applications/networking/esniper/default.nix @@ -1,17 +1,15 @@ { stdenv, fetchurl, openssl, curl }: stdenv.mkDerivation { - name = "esniper-2.26.0"; + name = "esniper-2.27.0"; src = fetchurl { - url = "mirror://sourceforge/esniper/esniper-2-26-0.tgz"; - sha256 = "5fd9a0f4b27b98deca303cd3d16c1ed060e05a165a40b2f4a9f8546db5e3877d"; + url = "mirror://sourceforge/esniper/esniper-2-27-0.tgz"; + sha256 = "0ca9946395be8958d3eb28c9abc4a1a4d4c9134e4b6b3c3816f4631e3be25c02"; }; buildInputs = [openssl curl]; - patches = [ ./fix-build-with-latest-curl.patch ]; - postInstall = '' sed -e "2i export PATH=\"$out/bin:\$PATH\"" <"frontends/snipe" >"$out/bin/snipe" chmod 555 "$out/bin/snipe" diff --git a/pkgs/applications/networking/esniper/fix-build-with-latest-curl.patch b/pkgs/applications/networking/esniper/fix-build-with-latest-curl.patch deleted file mode 100644 index 81005fd3ebe5..000000000000 --- a/pkgs/applications/networking/esniper/fix-build-with-latest-curl.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- esniper-2-26-0/http.c 2011-08-09 21:05:59.000000000 +0200 -+++ esniper/http.c 2011-08-10 00:24:43.000000000 +0200 -@@ -28,7 +28,6 @@ - #include "esniper.h" - #include <ctype.h> - #include <curl/curl.h> --#include <curl/types.h> - #include <curl/easy.h> - #include <stdlib.h> - #include <string.h> diff --git a/pkgs/applications/networking/remote/rdesktop/default.nix b/pkgs/applications/networking/remote/rdesktop/default.nix index cceb70b74fbf..c8c72160b341 100644 --- a/pkgs/applications/networking/remote/rdesktop/default.nix +++ b/pkgs/applications/networking/remote/rdesktop/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation (rec { pname = "rdesktop"; - version = "1.7.0"; + version = "1.7.1"; name = "${pname}-${version}"; src = fetchurl { url = "mirror://sourceforge/${pname}/${name}.tar.gz"; - sha256 = "0x2hnzvm0smnanin28n4mvzx9chpj2qnjfrxy307x21mgw6l5q1v"; + sha256 = "0yc4xz95w40m8ailpjgqp9h7bkc758vp0dlq4nj1pvr3xfnl7sni"; }; buildInputs = [openssl libX11]; diff --git a/pkgs/applications/networking/skype/default.nix b/pkgs/applications/networking/skype/default.nix index 1eef323ae057..f94d7e125f65 100644 --- a/pkgs/applications/networking/skype/default.nix +++ b/pkgs/applications/networking/skype/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, alsaLib, libXv, libXi, libXrender, libXrandr, zlib, glib , libXext, libX11, libXScrnSaver, libSM, qt4, libICE, freetype, fontconfig -, pulseaudio }: +, pulseaudio, usePulseAudio, lib }: assert stdenv.system == "i686-linux"; @@ -12,9 +12,9 @@ stdenv.mkDerivation rec { sha256 = "157ba3ci12bq0nv2m8wlsab45ib5sccqagyna8nixnhqw9q72sxm"; }; - buildInputs = [ + buildInputs = + lib.optional usePulseAudio pulseaudio ++ [ alsaLib - pulseaudio stdenv.glibc stdenv.gcc.gcc libXv diff --git a/pkgs/applications/office/hledger-interest/default.nix b/pkgs/applications/office/hledger-interest/default.nix index 5f61138f6ec2..a400730878ea 100644 --- a/pkgs/applications/office/hledger-interest/default.nix +++ b/pkgs/applications/office/hledger-interest/default.nix @@ -2,8 +2,8 @@ cabal.mkDerivation (self: { pname = "hledger-interest"; - version = "1.3"; - sha256 = "1sgnl3vv38cmgxv3xag3c78j1955xxwdmr5xr3f8rc78np6d0wnz"; + version = "1.4"; + sha256 = "0lm4jcxcig3yxzhbnka1q54fvshn5b9d91a5a2mbmkzbwhzjj0lg"; isLibrary = false; isExecutable = true; buildDepends = [ hledgerLib mtl time ]; diff --git a/pkgs/applications/science/logic/hol_light/default.nix b/pkgs/applications/science/logic/hol_light/default.nix index 0e688e71a2e5..88f3f788376c 100644 --- a/pkgs/applications/science/logic/hol_light/default.nix +++ b/pkgs/applications/science/logic/hol_light/default.nix @@ -9,11 +9,11 @@ let in stdenv.mkDerivation { - name = "hol_light-20120109"; + name = "hol_light-20120129"; src = fetchsvn { url = http://hol-light.googlecode.com/svn/trunk; - rev = "118"; - sha256 = "97e72dad731338328c031421512c26d440a989ea083f3ae34820eb8413aff495"; + rev = "122"; + sha256 = "d837ba5fe941af9595540691ba4be34e58174ba9a9c7e1ce57620e5cd4385769"; }; buildInputs = [ ocaml findlib camlp5 ]; diff --git a/pkgs/applications/video/MPlayer/default.nix b/pkgs/applications/video/MPlayer/default.nix index 0566b4bbe291..a594bd4e2c61 100644 --- a/pkgs/applications/video/MPlayer/default.nix +++ b/pkgs/applications/video/MPlayer/default.nix @@ -166,5 +166,6 @@ stdenv.mkDerivation rec { homepage = "http://mplayerhq.hu"; license = "GPL"; maintainers = [ stdenv.lib.maintainers.eelco stdenv.lib.maintainers.urkud ]; + platforms = stdenv.lib.platforms.linux; }; } diff --git a/pkgs/applications/video/dvswitch/default.nix b/pkgs/applications/video/dvswitch/default.nix index 097bf4f49f48..8803fe0a7868 100644 --- a/pkgs/applications/video/dvswitch/default.nix +++ b/pkgs/applications/video/dvswitch/default.nix @@ -1,5 +1,6 @@ -{ stdenv, fetchurl, alsaLib, boost, cmake, gtkmm, libXau, libXdmcp, - libXv, libav, pixman, libpthreadstubs, pkgconfig }: +{ stdenv, fetchurl, alsaLib, boost, cmake, gtkmm, libXau, libXdmcp +, libXv, libav, pixman, libpthreadstubs, pkgconfig +}: stdenv.mkDerivation rec { name = "dvswitch-${version}"; @@ -15,13 +16,12 @@ stdenv.mkDerivation rec { libpthreadstubs pixman pkgconfig ]; - installPhase = " - mkdir -p $out - cp src/dv* $out/ - "; + patchPhase = '' + sed -e "s@prefix /usr/local@prefix $out@" -i CMakeLists.txt + ''; meta = with stdenv.lib; { - description = "digital video mixer intended for interactive live mixing of several incoming DV video streams"; + description = "interactive live video mixer for DV streams"; homepage = "http://dvswitch.alioth.debian.org"; license = licenses.gpl2Plus; maintainers = [ maintainers.goibhniu ]; diff --git a/pkgs/applications/window-managers/icewm/default.nix b/pkgs/applications/window-managers/icewm/default.nix index 632bc50c8690..0b541d8104d3 100644 --- a/pkgs/applications/window-managers/icewm/default.nix +++ b/pkgs/applications/window-managers/icewm/default.nix @@ -1,29 +1,35 @@ -{ stdenv, fetchurl, gettext, libjpeg, libtiff, libungif, libpng, imlib -, xlibs, automake, pkgconfig, gtk }: +{ stdenv, fetchurl, gettext, libjpeg, libtiff, libungif, libpng, freetype +, fontconfig, xlibs, automake, pkgconfig, gdk_pixbuf }: stdenv.mkDerivation rec { - name = "icewm-1.3.6"; + name = "icewm-1.3.7"; buildInputs = - [ gettext libjpeg libtiff libungif libpng imlib + [ gettext libjpeg libtiff libungif libpng xlibs.libX11 xlibs.libXft xlibs.libXext xlibs.libXinerama xlibs.libXrandr - pkgconfig gtk + xlibs.libICE xlibs.libSM freetype fontconfig + pkgconfig gdk_pixbuf ]; src = fetchurl { url = "mirror://sourceforge/icewm/${name}.tar.gz"; - sha256 = "1pr7rc10rddwvy4ncng4mf5fpxd1nqjsw34xba9ngsg32rg57b91"; + sha256 = "0yw813d8amrl0n1fvdiyznxah92wcylj9kj1qhjc6h73d827h6na"; }; NIX_LDFLAGS = "-lfontconfig"; # The fuloong2f is not supported by 1.3.6 still + # + # Don't know whether 1.3.7 supports fuloong2f and don't know how to test it + # on x86_64 hardware. So I left this 'cp' -- urkud + preConfigure = '' - cp ${automake}/share/automake*/config.{sub,guess} . + cp -v ${automake}/share/automake*/config.{sub,guess} . ''; meta = { description = "A window manager for the X Window System"; homepage = http://www.icewm.org/; + platforms = stdenv.lib.platforms.unix; }; } |