slimserver: replace vendored packages where possible, upgrade to perl 5.38

+84 -10
+84 -10
pkgs/servers/slimserver/default.nix
··· 1 1 { faad2 2 2 , fetchFromGitHub 3 - , fetchurl 4 3 , flac 5 4 , lame 6 5 , lib 7 6 , makeWrapper 8 7 , monkeysAudio 9 8 , nixosTests 10 - , perl536Packages 9 + , perl538Packages 11 10 , sox 12 11 , stdenv 13 12 , wavpack ··· 16 15 }: 17 16 18 17 let 19 - perlPackages = perl536Packages; 18 + perlPackages = perl538Packages; 20 19 in 21 20 perlPackages.buildPerlPackage rec { 22 21 pname = "slimserver"; ··· 31 30 32 31 nativeBuildInputs = [ makeWrapper ]; 33 32 34 - buildInputs = [ perlPackages.CryptOpenSSLRSA perlPackages.IOSocketSSL ]; 33 + buildInputs = with perlPackages; [ 34 + AnyEvent 35 + ArchiveZip 36 + AsyncUtil 37 + AudioScan 38 + CarpClan 39 + CGI 40 + ClassAccessor 41 + ClassAccessorChained 42 + ClassC3 43 + # ClassC3Componentised # Error: DBIx::Class::Row::throw_exception(): DBIx::Class::Relationship::BelongsTo::belongs_to(): Can't infer join condition for track 44 + ClassDataInheritable 45 + ClassInspector 46 + ClassISA 47 + ClassMember 48 + ClassSingleton 49 + ClassVirtual 50 + ClassXSAccessor 51 + CompressRawZlib 52 + CryptOpenSSLRSA 53 + DataDump 54 + DataPage 55 + DataURIEncode 56 + DBDSQLite 57 + DBI 58 + # DBIxClass # https://github.com/Logitech/slimserver/issues/138 59 + DigestSHA1 60 + EncodeDetect 61 + EV 62 + ExporterLite 63 + FileBOM 64 + FileCopyRecursive 65 + FileNext 66 + FileReadBackwards 67 + FileSlurp 68 + FileWhich 69 + HTMLParser 70 + HTTPCookies 71 + HTTPDaemon 72 + HTTPMessage 73 + ImageScale 74 + IOAIO 75 + IOInterface 76 + IOSocketSSL 77 + IOString 78 + JSONXS 79 + JSONXSVersionOneAndTwo 80 + # LogLog4perl # Internal error: Root Logger not initialized. 81 + LWP 82 + LWPProtocolHttps 83 + MP3CutGapless 84 + NetHTTP 85 + NetHTTPSNB 86 + PathClass 87 + ProcBackground 88 + # SQLAbstract # DBI Exception: DBD::SQLite::db prepare_cached failed: no such function: ARRAY 89 + SQLAbstractLimit 90 + SubName 91 + TemplateToolkit 92 + TextUnidecode 93 + TieCacheLRU 94 + TieCacheLRUExpires 95 + TieRegexpHash 96 + TimeDate 97 + URI 98 + URIFind 99 + UUIDTiny 100 + XMLParser 101 + XMLSimple 102 + YAMLLibYAML 103 + ] 104 + # ++ (lib.optional stdenv.isDarwin perlPackages.MacFSEvents) 105 + ++ (lib.optional stdenv.isLinux perlPackages.LinuxInotify2); 35 106 36 107 prePatch = '' 37 108 # remove vendored binaries 38 109 rm -rf Bin 39 110 40 - # remove modules for other versions of perl 41 - for x in $(ls CPAN/arch); do 42 - if [ "$x" != "${lib.versions.majorMinor perlPackages.perl.version}" ]; then 43 - rm -rf "CPAN/arch/$x" 44 - fi 45 - done 111 + # remove most vendored modules, keeping necessary ones 112 + mkdir -p CPAN_used/Class/C3/ CPAN_used/SQL 113 + rm -r CPAN/SQL/Abstract/Limit.pm 114 + cp -rv CPAN/Class/C3/Componentised.pm CPAN_used/Class/C3/ 115 + cp -rv CPAN/DBIx CPAN_used/ 116 + cp -rv CPAN/Log CPAN_used/ 117 + cp -rv CPAN/SQL/* CPAN_used/SQL/ 118 + rm -r CPAN 119 + mv CPAN_used CPAN 46 120 47 121 ${lib.optionalString (!enableUnfreeFirmware) '' 48 122 # remove unfree firmware