Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
at netboot-syslinux-multiplatform 117 lines 3.0 kB view raw
1{ lib 2, fetchFromGitHub 3, makeWrapper 4, perlPackages 5, flac 6, faad2 7, sox 8, lame 9, monkeysAudio 10, wavpack 11}: 12 13perlPackages.buildPerlPackage rec { 14 pname = "slimserver"; 15 version = "7.9.2"; 16 17 src = fetchFromGitHub { 18 owner = "Logitech"; 19 repo = "slimserver"; 20 rev = version; 21 hash = "sha256-P4CSu/ff6i48uWV5gXsJgayZ1S1s0RAqa5O5y3Y0g9Y="; 22 }; 23 24 nativeBuildInputs = [ makeWrapper ]; 25 buildInputs = [ 26 perlPackages.perl 27 perlPackages.AnyEvent 28 perlPackages.ArchiveZip 29 perlPackages.AudioScan 30 perlPackages.CarpClan 31 perlPackages.CGI 32 perlPackages.ClassXSAccessor 33 perlPackages.DataDump 34 perlPackages.DataURIEncode 35 perlPackages.DBDSQLite 36 perlPackages.DBI 37 perlPackages.DBIxClass 38 perlPackages.DigestSHA1 39 perlPackages.EV 40 perlPackages.ExporterLite 41 perlPackages.FileBOM 42 perlPackages.FileCopyRecursive 43 perlPackages.FileNext 44 perlPackages.FileReadBackwards 45 perlPackages.FileSlurp 46 perlPackages.FileWhich 47 perlPackages.HTMLParser 48 perlPackages.HTTPCookies 49 perlPackages.HTTPDaemon 50 perlPackages.HTTPMessage 51 perlPackages.ImageScale 52 perlPackages.IOSocketSSL 53 perlPackages.IOString 54 perlPackages.JSONXSVersionOneAndTwo 55 perlPackages.LogLog4perl 56 perlPackages.LWP 57 perlPackages.NetHTTP 58 perlPackages.NetHTTPSNB 59 perlPackages.ProcBackground 60 perlPackages.SubName 61 perlPackages.TemplateToolkit 62 perlPackages.TextUnidecode 63 perlPackages.TieCacheLRU 64 perlPackages.TieCacheLRUExpires 65 perlPackages.TieRegexpHash 66 perlPackages.TimeDate 67 perlPackages.URI 68 perlPackages.URIFind 69 perlPackages.UUIDTiny 70 perlPackages.XMLParser 71 perlPackages.XMLSimple 72 perlPackages.YAMLLibYAML 73 ]; 74 75 76 prePatch = '' 77 mkdir CPAN_used 78 # slimserver doesn't work with current DBIx/SQL versions, use bundled copies 79 mv CPAN/DBIx CPAN/SQL CPAN_used 80 rm -rf CPAN 81 rm -rf Bin 82 touch Makefile.PL 83 84 # relax audio scan version constraints 85 substituteInPlace lib/Audio/Scan.pm --replace "0.93" "1.01" 86 substituteInPlace modules.conf --replace "Audio::Scan 0.93 0.95" "Audio::Scan 0.93" 87 ''; 88 89 preConfigurePhase = ""; 90 91 buildPhase = '' 92 mv lib tmp 93 mkdir -p ${perlPackages.perl.libPrefix} 94 mv CPAN_used/* ${perlPackages.perl.libPrefix} 95 cp -rf tmp/* ${perlPackages.perl.libPrefix} 96 ''; 97 98 doCheck = false; 99 100 installPhase = '' 101 cp -r . $out 102 wrapProgram $out/slimserver.pl \ 103 --prefix PATH : "${lib.makeBinPath [ lame flac faad2 sox monkeysAudio wavpack ]}" 104 ''; 105 106 outputs = [ "out" ]; 107 108 meta = with lib; { 109 homepage = "https://github.com/Logitech/slimserver"; 110 description = "Server for Logitech Squeezebox players. This server is also called Logitech Media Server"; 111 # the firmware is not under a free license! 112 # https://github.com/Logitech/slimserver/blob/public/7.9/License.txt 113 license = licenses.unfree; 114 maintainers = [ ]; 115 platforms = platforms.unix; 116 }; 117}