Merge pull request #150793 from Luflosi/update/mp3fs

mp3fs: 0.91 -> 1.1.1
This commit is contained in:
Thiago Kenji Okada 2021-12-15 20:42:50 -03:00 committed by GitHub
commit 6c2318e451
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 30 additions and 51 deletions

View File

@ -1,18 +1,35 @@
{ lib, stdenv, fetchurl, flac, fuse, lame, libid3tag, pkg-config }: { lib
, stdenv
, fetchFromGitHub
, flac
, fuse
, lame
, libid3tag
, libvorbis
, autoreconfHook
, pkg-config
, pandoc
}:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "mp3fs"; pname = "mp3fs";
version = "0.91"; version = "1.1.1";
src = fetchurl { src = fetchFromGitHub {
url = "https://github.com/khenriks/mp3fs/releases/download/v${version}/${pname}-${version}.tar.gz"; owner = "khenriks";
sha256 = "14ngiqg24p3a0s6hp33zjl4i46d8qn4v9id36psycq3n3csmwyx4"; repo = "mp3fs";
rev = "v${version}";
sha256 = "sha256-dF+DfkNKvYOucS6KjYR1MMGxayM+1HVS8mbmaavmgKM=";
}; };
patches = [ ./fix-statfs-operation.patch ]; postPatch = ''
substituteInPlace src/mp3fs.cc \
--replace "#include <fuse_darwin.h>" "" \
--replace "osxfuse_version()" "fuse_version()"
'';
buildInputs = [ flac fuse lame libid3tag ]; buildInputs = [ flac fuse lame libid3tag libvorbis ];
nativeBuildInputs = [ pkg-config ]; nativeBuildInputs = [ autoreconfHook pkg-config pandoc ];
enableParallelBuilding = true; enableParallelBuilding = true;
@ -20,13 +37,14 @@ stdenv.mkDerivation rec {
description = "FUSE file system that transparently transcodes to MP3"; description = "FUSE file system that transparently transcodes to MP3";
longDescription = '' longDescription = ''
A read-only FUSE filesystem which transcodes between audio formats A read-only FUSE filesystem which transcodes between audio formats
(currently only FLAC to MP3) on the fly when files are opened and read. (currently FLAC and Ogg Vorbis to MP3) on the fly when opened and read.
It can let you use a FLAC collection with software and/or hardware This can let you use a FLAC or Ogg Vorbis collection with software
which only understands the MP3 format, or transcode files through and/or hardware which only understands the MP3 format, or transcode
simple drag-and-drop in a file browser. files through simple drag-and-drop in a file browser.
''; '';
homepage = "https://khenriks.github.io/mp3fs/"; homepage = "https://khenriks.github.io/mp3fs/";
license = licenses.gpl3Plus; license = licenses.gpl3Plus;
platforms = platforms.unix; platforms = platforms.unix;
maintainers = with maintainers; [ Luflosi ];
}; };
} }

View File

@ -1,39 +0,0 @@
From fea072084ff9d7c4d2c688059a2462bb0e59a2ec Mon Sep 17 00:00:00 2001
From: K Henriksson <kthenriksson@gmail.com>
Date: Wed, 27 Aug 2014 21:55:18 -0700
Subject: [PATCH] Fix statfs operation
The statfs implementation does not properly translate names back to the
original, since the major encoding rewrite. This corrects that, and
should fix issue #27.
---
src/fuseops.c | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/fuseops.c b/src/fuseops.c
index e7b4e7e..c333cbd 100644
--- a/src/fuseops.c
+++ b/src/fuseops.c
@@ -337,9 +337,20 @@ static int mp3fs_statfs(const char *path, struct statvfs *stbuf) {
if (!origpath) {
goto translate_fail;
}
-
+
+ /* pass-through for regular files */
+ if (statvfs(origpath, stbuf) == 0) {
+ goto passthrough;
+ } else {
+ /* Not really an error. */
+ errno = 0;
+ }
+
+ find_original(origpath);
+
statvfs(origpath, stbuf);
-
+
+passthrough:
free(origpath);
translate_fail:
return -errno;