lol
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

Merge staging-next into staging

authored by

github-actions[bot] and committed by
GitHub
9a71828f 60abfb41

+683 -121
+8
nixos/doc/manual/from_md/release-notes/rl-2211.section.xml
··· 250 250 </listitem> 251 251 <listitem> 252 252 <para> 253 + <link xlink:href="https://www.dolibarr.org/">Dolibarr</link>, 254 + an enterprise resource planning and customer relationship 255 + manager. Enable using 256 + <link linkend="opt-services.dolibarr.enable">services.dolibarr</link>. 257 + </para> 258 + </listitem> 259 + <listitem> 260 + <para> 253 261 <link xlink:href="https://www.expressvpn.com">expressvpn</link>, 254 262 the CLI client for ExpressVPN. Available as 255 263 <link linkend="opt-services.expressvpn.enable">services.expressvpn</link>.
+2
nixos/doc/manual/release-notes/rl-2211.section.md
··· 90 90 91 91 - [schleuder](https://schleuder.org/), a mailing list manager with PGP support. Enable using [services.schleuder](#opt-services.schleuder.enable). 92 92 93 + - [Dolibarr](https://www.dolibarr.org/), an enterprise resource planning and customer relationship manager. Enable using [services.dolibarr](#opt-services.dolibarr.enable). 94 + 93 95 - [expressvpn](https://www.expressvpn.com), the CLI client for ExpressVPN. Available as [services.expressvpn](#opt-services.expressvpn.enable). 94 96 95 97 - [Grafana Tempo](https://www.grafana.com/oss/tempo/), a distributed tracing store. Available as [services.tempo](#opt-services.tempo.enable).
+5 -2
nixos/modules/config/no-x-libs.nix
··· 27 27 fonts.fontconfig.enable = false; 28 28 29 29 nixpkgs.overlays = singleton (const (super: { 30 + beam = super.beam_nox; 30 31 cairo = super.cairo.override { x11Support = false; }; 31 32 dbus = super.dbus.override { x11Support = false; }; 32 - beam = super.beam_nox; 33 + ffmpeg_4 = super.ffmpeg_4.override { sdlSupport = false; vdpauSupport = false; }; 34 + ffmpeg_5 = super.ffmpeg_5.override { sdlSupport = false; vdpauSupport = false; }; 35 + gobject-introspection = super.gobject-introspection.override { x11Support = false; }; 36 + libva = super.libva-minimal; 33 37 networkmanager-fortisslvpn = super.networkmanager-fortisslvpn.override { withGnome = false; }; 34 38 networkmanager-iodine = super.networkmanager-iodine.override { withGnome = false; }; 35 39 networkmanager-l2tp = super.networkmanager-l2tp.override { withGnome = false; }; ··· 37 41 networkmanager-openvpn = super.networkmanager-openvpn.override { withGnome = false; }; 38 42 networkmanager-sstp = super.networkmanager-vpnc.override { withGnome = false; }; 39 43 networkmanager-vpnc = super.networkmanager-vpnc.override { withGnome = false; }; 40 - gobject-introspection = super.gobject-introspection.override { x11Support = false; }; 41 44 qemu = super.qemu.override { gtkSupport = false; spiceSupport = false; sdlSupport = false; }; 42 45 })); 43 46 };
+1
nixos/modules/module-list.nix
··· 1065 1065 ./services/web-apps/discourse.nix 1066 1066 ./services/web-apps/documize.nix 1067 1067 ./services/web-apps/dokuwiki.nix 1068 + ./services/web-apps/dolibarr.nix 1068 1069 ./services/web-apps/engelsystem.nix 1069 1070 ./services/web-apps/ethercalc.nix 1070 1071 ./services/web-apps/fluidd.nix
+9 -20
nixos/modules/services/networking/minidlna.nix
··· 1 1 # Module for MiniDLNA, a simple DLNA server. 2 2 { config, lib, pkgs, ... }: 3 - 4 3 with lib; 5 4 6 5 let ··· 34 33 default = {}; 35 34 description = lib.mdDoc '' 36 35 The contents of MiniDLNA's configuration file. 37 - When the service is activated, a basic template is generated 38 - from the current options opened here. 36 + When the service is activated, a basic template is generated from the current options opened here. 39 37 ''; 40 38 type = types.submodule { 41 39 freeformType = settingsFormat.type; ··· 46 44 example = [ "/data/media" "V,/home/alice/video" ]; 47 45 description = lib.mdDoc '' 48 46 Directories to be scanned for media files. 49 - The prefixes `A,`,`V,` and 50 - `P,` restrict a directory to audio, video 51 - or image files. The directories must be accessible to the 52 - `minidlna` user account. 47 + The `A,` `V,` `P,` prefixes restrict a directory to audio, video or image files. 48 + The directories must be accessible to the `minidlna` user account. 53 49 ''; 54 50 }; 55 51 options.notify_interval = mkOption { ··· 57 53 default = 90000; 58 54 description = lib.mdDoc '' 59 55 The interval between announces (in seconds). 60 - Instead of waiting on announces, one can open port UDP 1900 or 61 - set `openFirewall` option to use SSDP discovery. 62 - Furthermore announce interval has now been set as 90000 in order 63 - to prevent disconnects with certain clients and to rely solely 64 - on the SSDP method. 56 + Instead of waiting for announces, you should set `openFirewall` option to use SSDP discovery. 57 + Furthermore, this option has been set to 90000 in order to prevent disconnects with certain 58 + clients and relies solely on the discovery. 65 59 66 - Lower values (e.g. 60 seconds) should be used if one does not 67 - want to utilize SSDP. By default miniDLNA will announce its 68 - presence on the network approximately every 15 minutes. Many 69 - people prefer shorter announce intervals on their home networks, 70 - especially when DLNA clients are started on demand. 71 - 60 + Lower values (e.g. 30 seconds) should be used if you can't use the discovery. 72 61 Some relevant information can be found here: 73 62 https://sourceforge.net/p/minidlna/discussion/879957/thread/1389d197/ 74 63 ''; ··· 86 75 }; 87 76 options.friendly_name = mkOption { 88 77 type = types.str; 89 - default = "${config.networking.hostName} MiniDLNA"; 78 + default = config.networking.hostName; 90 79 defaultText = literalExpression "config.networking.hostName"; 91 80 example = "rpi3"; 92 81 description = lib.mdDoc "Name that the DLNA server presents to clients."; ··· 116 105 options.wide_links = mkOption { 117 106 type = types.enum [ "yes" "no" ]; 118 107 default = "no"; 119 - description = lib.mdDoc "Set this to yes to allow symlinks that point outside user-defined media_dirs."; 108 + description = lib.mdDoc "Set this to yes to allow symlinks that point outside user-defined `media_dir`."; 120 109 }; 121 110 }; 122 111 };
+320
nixos/modules/services/web-apps/dolibarr.nix
··· 1 + { config, pkgs, lib, ... }: 2 + let 3 + inherit (lib) any boolToString concatStringsSep isBool isString literalExpression mapAttrsToList mkDefault mkEnableOption mkIf mkOption optionalAttrs types; 4 + 5 + package = pkgs.dolibarr.override { inherit (cfg) stateDir; }; 6 + 7 + cfg = config.services.dolibarr; 8 + vhostCfg = config.services.nginx.virtualHosts."${cfg.domain}"; 9 + 10 + mkConfigFile = filename: settings: 11 + let 12 + # hack in special logic for secrets so we read them from a separate file avoiding the nix store 13 + secretKeys = [ "force_install_databasepass" "dolibarr_main_db_pass" "dolibarr_main_instance_unique_id" ]; 14 + 15 + toStr = k: v: 16 + if (any (str: k == str) secretKeys) then v 17 + else if isString v then "'${v}'" 18 + else if isBool v then boolToString v 19 + else if isNull v then "null" 20 + else toString v 21 + ; 22 + in 23 + pkgs.writeText filename '' 24 + <?php 25 + ${concatStringsSep "\n" (mapAttrsToList (k: v: "\$${k} = ${toStr k v};") settings)} 26 + ''; 27 + 28 + # see https://github.com/Dolibarr/dolibarr/blob/develop/htdocs/install/install.forced.sample.php for all possible values 29 + install = { 30 + force_install_noedit = 2; 31 + force_install_main_data_root = "${cfg.stateDir}/documents"; 32 + force_install_nophpinfo = true; 33 + force_install_lockinstall = "444"; 34 + force_install_distrib = "nixos"; 35 + force_install_type = "mysqli"; 36 + force_install_dbserver = cfg.database.host; 37 + force_install_port = toString cfg.database.port; 38 + force_install_database = cfg.database.name; 39 + force_install_databaselogin = cfg.database.user; 40 + 41 + force_install_mainforcehttps = vhostCfg.forceSSL; 42 + force_install_createuser = false; 43 + force_install_dolibarrlogin = null; 44 + } // optionalAttrs (cfg.database.passwordFile != null) { 45 + force_install_databasepass = ''file_get_contents("${cfg.database.passwordFile}")''; 46 + }; 47 + in 48 + { 49 + # interface 50 + options.services.dolibarr = { 51 + enable = mkEnableOption "dolibarr"; 52 + 53 + domain = mkOption { 54 + type = types.str; 55 + default = "localhost"; 56 + description = '' 57 + Domain name of your server. 58 + ''; 59 + }; 60 + 61 + user = mkOption { 62 + type = types.str; 63 + default = "dolibarr"; 64 + description = '' 65 + User account under which dolibarr runs. 66 + 67 + <note><para> 68 + If left as the default value this user will automatically be created 69 + on system activation, otherwise you are responsible for 70 + ensuring the user exists before the dolibarr application starts. 71 + </para></note> 72 + ''; 73 + }; 74 + 75 + group = mkOption { 76 + type = types.str; 77 + default = "dolibarr"; 78 + description = '' 79 + Group account under which dolibarr runs. 80 + 81 + <note><para> 82 + If left as the default value this group will automatically be created 83 + on system activation, otherwise you are responsible for 84 + ensuring the group exists before the dolibarr application starts. 85 + </para></note> 86 + ''; 87 + }; 88 + 89 + stateDir = mkOption { 90 + type = types.str; 91 + default = "/var/lib/dolibarr"; 92 + description = '' 93 + State and configuration directory dolibarr will use. 94 + ''; 95 + }; 96 + 97 + database = { 98 + host = mkOption { 99 + type = types.str; 100 + default = "localhost"; 101 + description = "Database host address."; 102 + }; 103 + port = mkOption { 104 + type = types.port; 105 + default = 3306; 106 + description = "Database host port."; 107 + }; 108 + name = mkOption { 109 + type = types.str; 110 + default = "dolibarr"; 111 + description = "Database name."; 112 + }; 113 + user = mkOption { 114 + type = types.str; 115 + default = "dolibarr"; 116 + description = "Database username."; 117 + }; 118 + passwordFile = mkOption { 119 + type = with types; nullOr path; 120 + default = null; 121 + example = "/run/keys/dolibarr-dbpassword"; 122 + description = "Database password file."; 123 + }; 124 + createLocally = mkOption { 125 + type = types.bool; 126 + default = true; 127 + description = "Create the database and database user locally."; 128 + }; 129 + }; 130 + 131 + settings = mkOption { 132 + type = with types; (attrsOf (oneOf [ bool int str ])); 133 + default = { }; 134 + description = lib.mdDoc "Dolibarr settings, see <https://github.com/Dolibarr/dolibarr/blob/develop/htdocs/conf/conf.php.example> for details."; 135 + }; 136 + 137 + nginx = mkOption { 138 + type = types.nullOr (types.submodule ( 139 + lib.recursiveUpdate 140 + (import ../web-servers/nginx/vhost-options.nix { inherit config lib; }) 141 + { 142 + # enable encryption by default, 143 + # as sensitive login and Dolibarr (ERP) data should not be transmitted in clear text. 144 + options.forceSSL.default = true; 145 + options.enableACME.default = true; 146 + } 147 + )); 148 + default = null; 149 + example = lib.literalExpression '' 150 + { 151 + serverAliases = [ 152 + "dolibarr.''${config.networking.domain}" 153 + "erp.''${config.networking.domain}" 154 + ]; 155 + enableACME = false; 156 + } 157 + ''; 158 + description = lib.mdDoc '' 159 + With this option, you can customize an nginx virtual host which already has sensible defaults for Dolibarr. 160 + Set to {} if you do not need any customization to the virtual host. 161 + If enabled, then by default, the {option}`serverName` is 162 + `''${domain}`, 163 + SSL is active, and certificates are acquired via ACME. 164 + If this is set to null (the default), no nginx virtualHost will be configured. 165 + ''; 166 + }; 167 + 168 + poolConfig = mkOption { 169 + type = with types; attrsOf (oneOf [ str int bool ]); 170 + default = { 171 + "pm" = "dynamic"; 172 + "pm.max_children" = 32; 173 + "pm.start_servers" = 2; 174 + "pm.min_spare_servers" = 2; 175 + "pm.max_spare_servers" = 4; 176 + "pm.max_requests" = 500; 177 + }; 178 + description = lib.mdDoc '' 179 + Options for the Dolibarr PHP pool. See the documentation on [`php-fpm.conf`](https://www.php.net/manual/en/install.fpm.configuration.php) 180 + for details on configuration directives. 181 + ''; 182 + }; 183 + }; 184 + 185 + # implementation 186 + config = mkIf cfg.enable { 187 + 188 + assertions = [ 189 + { assertion = cfg.database.createLocally -> cfg.database.user == cfg.user; 190 + message = "services.dolibarr.database.user must match services.dolibarr.user if the database is to be automatically provisioned"; 191 + } 192 + ]; 193 + 194 + services.dolibarr.settings = { 195 + dolibarr_main_url_root = "https://${cfg.domain}"; 196 + dolibarr_main_document_root = "${package}/htdocs"; 197 + dolibarr_main_url_root_alt = "/custom"; 198 + dolibarr_main_data_root = "${cfg.stateDir}/documents"; 199 + 200 + dolibarr_main_db_host = cfg.database.host; 201 + dolibarr_main_db_port = toString cfg.database.port; 202 + dolibarr_main_db_name = cfg.database.name; 203 + dolibarr_main_db_prefix = "llx_"; 204 + dolibarr_main_db_user = cfg.database.user; 205 + dolibarr_main_db_pass = mkIf (cfg.database.passwordFile != null) '' 206 + file_get_contents("${cfg.database.passwordFile}") 207 + ''; 208 + dolibarr_main_db_type = "mysqli"; 209 + dolibarr_main_db_character_set = mkDefault "utf8"; 210 + dolibarr_main_db_collation = mkDefault "utf8_unicode_ci"; 211 + 212 + # Authentication settings 213 + dolibarr_main_authentication = mkDefault "dolibarr"; 214 + 215 + # Security settings 216 + dolibarr_main_prod = true; 217 + dolibarr_main_force_https = vhostCfg.forceSSL; 218 + dolibarr_main_restrict_os_commands = "${pkgs.mariadb}/bin/mysqldump, ${pkgs.mariadb}/bin/mysql"; 219 + dolibarr_nocsrfcheck = false; 220 + dolibarr_main_instance_unique_id = '' 221 + file_get_contents("${cfg.stateDir}/dolibarr_main_instance_unique_id") 222 + ''; 223 + dolibarr_mailing_limit_sendbyweb = false; 224 + }; 225 + 226 + systemd.tmpfiles.rules = [ 227 + "d '${cfg.stateDir}' 0750 ${cfg.user} ${cfg.group}" 228 + "d '${cfg.stateDir}/documents' 0750 ${cfg.user} ${cfg.group}" 229 + "f '${cfg.stateDir}/conf.php' 0660 ${cfg.user} ${cfg.group}" 230 + "L '${cfg.stateDir}/install.forced.php' - ${cfg.user} ${cfg.group} - ${mkConfigFile "install.forced.php" install}" 231 + ]; 232 + 233 + services.mysql = mkIf cfg.database.createLocally { 234 + enable = mkDefault true; 235 + package = mkDefault pkgs.mariadb; 236 + ensureDatabases = [ cfg.database.name ]; 237 + ensureUsers = [ 238 + { name = cfg.database.user; 239 + ensurePermissions = { "${cfg.database.name}.*" = "ALL PRIVILEGES"; }; 240 + } 241 + ]; 242 + }; 243 + 244 + services.nginx.enable = mkIf (cfg.nginx != null) true; 245 + services.nginx.virtualHosts."${cfg.domain}" = mkIf (cfg.nginx != null) (lib.mkMerge [ 246 + cfg.nginx 247 + ({ 248 + root = lib.mkForce "${package}/htdocs"; 249 + locations."/".index = "index.php"; 250 + locations."~ [^/]\\.php(/|$)" = { 251 + extraConfig = '' 252 + fastcgi_split_path_info ^(.+?\.php)(/.*)$; 253 + fastcgi_pass unix:${config.services.phpfpm.pools.dolibarr.socket}; 254 + ''; 255 + }; 256 + }) 257 + ]); 258 + 259 + systemd.services."phpfpm-dolibarr".after = mkIf cfg.database.createLocally [ "mysql.service" ]; 260 + services.phpfpm.pools.dolibarr = { 261 + inherit (cfg) user group; 262 + phpPackage = pkgs.php.buildEnv { 263 + extensions = { enabled, all }: enabled ++ [ all.calendar ]; 264 + # recommended by dolibarr web application 265 + extraConfig = '' 266 + session.use_strict_mode = 1 267 + session.cookie_samesite = "Lax" 268 + ; open_basedir = "${package}/htdocs, ${cfg.stateDir}" 269 + allow_url_fopen = 0 270 + disable_functions = "pcntl_alarm, pcntl_fork, pcntl_waitpid, pcntl_wait, pcntl_wifexited, pcntl_wifstopped, pcntl_wifsignaled, pcntl_wifcontinued, pcntl_wexitstatus, pcntl_wtermsig, pcntl_wstopsig, pcntl_signal, pcntl_signal_get_handler, pcntl_signal_dispatch, pcntl_get_last_error, pcntl_strerror, pcntl_sigprocmask, pcntl_sigwaitinfo, pcntl_sigtimedwait, pcntl_exec, pcntl_getpriority, pcntl_setpriority, pcntl_async_signals" 271 + ''; 272 + }; 273 + 274 + settings = { 275 + "listen.mode" = "0660"; 276 + "listen.owner" = cfg.user; 277 + "listen.group" = cfg.group; 278 + } // cfg.poolConfig; 279 + }; 280 + 281 + # there are several challenges with dolibarr and NixOS which we can address here 282 + # - the dolibarr installer cannot be entirely automated, though it can partially be by including a file called install.forced.php 283 + # - the dolibarr installer requires write access to its config file during installation, though not afterwards 284 + # - the dolibarr config file generally holds secrets generated by the installer, though the config file is a php file so we can read and write these secrets from an external file 285 + systemd.services.dolibarr-config = { 286 + description = "dolibarr configuration file management via NixOS"; 287 + wantedBy = [ "multi-user.target" ]; 288 + 289 + script = '' 290 + # extract the 'main instance unique id' secret that the dolibarr installer generated for us, store it in a file for use by our own NixOS generated configuration file 291 + ${pkgs.php}/bin/php -r "include '${cfg.stateDir}/conf.php'; file_put_contents('${cfg.stateDir}/dolibarr_main_instance_unique_id', \$dolibarr_main_instance_unique_id);" 292 + 293 + # replace configuration file generated by installer with the NixOS generated configuration file 294 + install -m 644 ${mkConfigFile "conf.php" cfg.settings} '${cfg.stateDir}/conf.php' 295 + ''; 296 + 297 + serviceConfig = { 298 + Type = "oneshot"; 299 + User = cfg.user; 300 + Group = cfg.group; 301 + RemainAfterExit = "yes"; 302 + }; 303 + 304 + unitConfig = { 305 + ConditionFileNotEmpty = "${cfg.stateDir}/conf.php"; 306 + }; 307 + }; 308 + 309 + users.users.dolibarr = mkIf (cfg.user == "dolibarr" ) { 310 + isSystemUser = true; 311 + group = cfg.group; 312 + }; 313 + 314 + users.groups = optionalAttrs (cfg.group == "dolibarr") { 315 + dolibarr = { }; 316 + }; 317 + 318 + users.users."${config.services.nginx.group}".extraGroups = [ cfg.group ]; 319 + }; 320 + }
+59
nixos/tests/dolibarr.nix
··· 1 + import ./make-test-python.nix ({ pkgs, lib, ... }: { 2 + name = "dolibarr"; 3 + meta.maintainers = [ lib.maintainers.raitobezarius ]; 4 + 5 + nodes.machine = 6 + { ... }: 7 + { 8 + services.dolibarr = { 9 + enable = true; 10 + domain = "localhost"; 11 + nginx = { 12 + forceSSL = false; 13 + enableACME = false; 14 + }; 15 + }; 16 + 17 + networking.firewall.allowedTCPPorts = [ 80 ]; 18 + }; 19 + 20 + testScript = '' 21 + from html.parser import HTMLParser 22 + start_all() 23 + 24 + csrf_token = None 25 + class TokenParser(HTMLParser): 26 + def handle_starttag(self, tag, attrs): 27 + attrs = dict(attrs) # attrs is an assoc list originally 28 + if tag == 'input' and attrs.get('name') == 'token': 29 + csrf_token = attrs.get('value') 30 + print(f'[+] Caught CSRF token: {csrf_token}') 31 + def handle_endtag(self, tag): pass 32 + def handle_data(self, data): pass 33 + 34 + machine.wait_for_unit("phpfpm-dolibarr.service") 35 + machine.wait_for_unit("nginx.service") 36 + machine.wait_for_open_port(80) 37 + # Sanity checks on URLs. 38 + # machine.succeed("curl -fL http://localhost/index.php") 39 + # machine.succeed("curl -fL http://localhost/") 40 + # Perform installation. 41 + machine.succeed('curl -fL -X POST http://localhost/install/check.php -F selectlang=auto') 42 + machine.succeed('curl -fL -X POST http://localhost/install/fileconf.php -F selectlang=auto') 43 + # First time is to write the configuration file correctly. 44 + machine.succeed('curl -fL -X POST http://localhost/install/step1.php -F "testpost=ok" -F "action=set" -F "selectlang=auto"') 45 + # Now, we have a proper conf.php in $stateDir. 46 + assert 'nixos' in machine.succeed("cat /var/lib/dolibarr/conf.php") 47 + machine.succeed('curl -fL -X POST http://localhost/install/step2.php --data "testpost=ok&action=set&dolibarr_main_db_character_set=utf8&dolibarr_main_db_collation=utf8_unicode_ci&selectlang=auto"') 48 + machine.succeed('curl -fL -X POST http://localhost/install/step4.php --data "testpost=ok&action=set&selectlang=auto"') 49 + machine.succeed('curl -fL -X POST http://localhost/install/step5.php --data "testpost=ok&action=set&login=root&pass=hunter2&pass_verif=hunter2&selectlang=auto"') 50 + # Now, we have installed the machine, let's verify we still have the right configuration. 51 + assert 'nixos' in machine.succeed("cat /var/lib/dolibarr/conf.php") 52 + # We do not want any redirect now as we have installed the machine. 53 + machine.succeed('curl -f -X POST http://localhost') 54 + # Test authentication to the webservice. 55 + parser = TokenParser() 56 + parser.feed(machine.succeed('curl -f -X GET http://localhost/index.php?mainmenu=login&username=root')) 57 + machine.succeed(f'curl -f -X POST http://localhost/index.php?mainmenu=login&token={csrf_token}&username=root&password=hunter2') 58 + ''; 59 + })
+15 -16
nixos/tests/minidlna.nix
··· 6 6 { ... }: 7 7 { 8 8 imports = [ ../modules/profiles/minimal.nix ]; 9 - networking.firewall.allowedTCPPorts = [ 8200 ]; 10 - services.minidlna = { 11 - enable = true; 12 - loglevel = "error"; 13 - mediaDirs = [ 14 - "PV,/tmp/stuff" 9 + services.minidlna.enable = true; 10 + services.minidlna.openFirewall = true; 11 + services.minidlna.settings = { 12 + log_level = "error"; 13 + media_dir = [ 14 + "PV,/tmp/stuff" 15 + ]; 16 + friendly_name = "rpi3"; 17 + root_container = "B"; 18 + notify_interval = 60; 19 + album_art_names = [ 20 + "Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg" 21 + "AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg" 22 + "Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg" 15 23 ]; 16 - friendlyName = "rpi3"; 17 - rootContainer = "B"; 18 - extraConfig = 19 - '' 20 - album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg 21 - album_art_names=AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg 22 - album_art_names=Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg 23 - notify_interval=60 24 - ''; 25 24 }; 26 25 }; 27 - client = { ... }: { }; 26 + client = { ... }: { }; 28 27 }; 29 28 30 29 testScript =
+2 -2
pkgs/applications/emulators/flycast/default.nix
··· 15 15 16 16 stdenv.mkDerivation rec { 17 17 pname = "flycast"; 18 - version = "1.3"; 18 + version = "2.0"; 19 19 20 20 src = fetchFromGitHub { 21 21 owner = "flyinghead"; 22 22 repo = "flycast"; 23 23 rev = "v${version}"; 24 - sha256 = "sha256-FAHm8Fu/yv2rJvWCY+g50TYH4zOT6rO7F+jTL2T6EOU="; 24 + sha256 = "sha256-vSyLg2lAJBV7crKVbGRbi1PUuCwHF9GB/8pjMTlaigA="; 25 25 fetchSubmodules = true; 26 26 }; 27 27
+2 -2
pkgs/applications/graphics/pineapple-pictures/default.nix
··· 10 10 11 11 stdenv.mkDerivation rec { 12 12 pname = "pineapple-pictures"; 13 - version = "0.6.2"; 13 + version = "0.6.3"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "BLumia"; 17 17 repo = "pineapple-pictures"; 18 18 rev = version; 19 - sha256 = "sha256-1fsEHyepmoZfNOFEnW6RQJyccOlQr5LTp8TjRqyXkcw"; 19 + sha256 = "sha256-9Nlrei3TxZr3tv0BtlfsKAvDJhQHgd21FzLnzitYF3U="; 20 20 }; 21 21 22 22 nativeBuildInputs = [
+3 -3
pkgs/applications/networking/cluster/arkade/default.nix
··· 7 7 8 8 buildGoModule rec { 9 9 pname = "arkade"; 10 - version = "0.8.38"; 10 + version = "0.8.39"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "alexellis"; 14 14 repo = "arkade"; 15 15 rev = version; 16 - sha256 = "sha256-8C7aQCQ6kqHCGSktYS3djTlEuPyRnzb9LrXkqgfzDyY="; 16 + sha256 = "sha256-ucM4Dl4ZeeZ6pCQ3qdf3Z88CWJIoreZWeo6ehKqXxI8="; 17 17 }; 18 18 19 19 CGO_ENABLED = 0; 20 20 21 21 nativeBuildInputs = [ installShellFiles ]; 22 22 23 - vendorSha256 = "sha256-ok8NuqVFZtzjSLpgxQI03ISojfKdHPHWyikqwtceMlo="; 23 + vendorSha256 = "sha256-TUaCqHbPEwhB2xS8RSoF7RCSkKFJzQKbuV1PbxApyMQ="; 24 24 25 25 # Exclude pkg/get: tests downloading of binaries which fail when sandbox=true 26 26 subPackages = [
+13
pkgs/applications/networking/cluster/kubeone/default.nix
··· 2 2 , buildGoModule 3 3 , fetchFromGitHub 4 4 , installShellFiles 5 + , kubeone 6 + , testers 5 7 }: 6 8 7 9 buildGoModule rec { ··· 17 19 18 20 vendorSha256 = "sha256-w/uLR7wi28Ub7Nouxxg39NlD1OzyIE2oEP4D88Xbwu0="; 19 21 22 + ldflags = [ 23 + "-s -w" 24 + "-X k8c.io/kubeone/pkg/cmd.version=${version}" 25 + "-X k8c.io/kubeone/pkg/cmd.date=unknown" 26 + ]; 27 + 20 28 nativeBuildInputs = [ 21 29 installShellFiles 22 30 ]; ··· 26 34 --bash <($out/bin/kubeone completion bash) \ 27 35 --zsh <($out/bin/kubeone completion zsh) 28 36 ''; 37 + 38 + passthru.tests.version = testers.testVersion { 39 + package = kubeone; 40 + command = "kubeone version"; 41 + }; 29 42 30 43 meta = { 31 44 description = "Automate cluster operations on all your cloud, on-prem, edge, and IoT environments.";
+3 -3
pkgs/applications/networking/mumble/default.nix
··· 98 98 } source; 99 99 100 100 source = rec { 101 - version = "unstable-1.4.231"; 101 + version = "1.4.274"; 102 102 103 103 # Needs submodules 104 104 src = fetchFromGitHub { 105 105 owner = "mumble-voip"; 106 106 repo = "mumble"; 107 - rev = "9e0e274d6a9d8a9919267e747d05d0500d150560"; 108 - sha256 = "0whvb4nlf7gjf2v7wsaq0ir18mshhw5wi8c9q9qz43wnh42nn2qi"; 107 + rev = "cc73c7679b08158f91b02272efbb0e3e5dd9c9e4"; 108 + sha256 = "sha256-QXczSLDhWLE4CDvBJ7NtqfL52bZJDisFo04AMHnMuN8="; 109 109 fetchSubmodules = true; 110 110 }; 111 111 };
+2 -2
pkgs/applications/science/biology/last/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "last"; 5 - version = "1406"; 5 + version = "1409"; 6 6 7 7 src = fetchFromGitLab { 8 8 owner = "mcfrith"; 9 9 repo = "last"; 10 10 rev = version; 11 - sha256 = "sha256-N1B9W++4SiMRMUjDi8ZexOWF/HQpN8BBPuDKYh4bCS8="; 11 + sha256 = "sha256-AFK0va1HonSWJdzJLdLraiu4LhUCJFgq6qajbbPmHuY="; 12 12 }; 13 13 14 14 nativeBuildInputs = [ unzip ];
+67
pkgs/applications/science/electronics/dataexplorer/default.nix
··· 1 + { lib 2 + , stdenv 3 + , fetchurl 4 + , jdk 5 + , jre 6 + , ant 7 + , makeWrapper 8 + }: 9 + 10 + stdenv.mkDerivation rec { 11 + pname = "dataexplorer"; 12 + version = "3.6.2"; 13 + 14 + src = fetchurl { 15 + url = "mirror://savannah/dataexplorer/dataexplorer-${version}-src.tar.gz"; 16 + sha256 = "sha256-2e8qeoJh7z/RIowMtAd8PGcMPck5H8iHqel6bW7EQ0E="; 17 + }; 18 + 19 + nativeBuildInputs = [ ant makeWrapper ]; 20 + 21 + buildInputs = [ jdk ]; 22 + 23 + buildPhase = '' 24 + ant -f build/build.xml dist 25 + ''; 26 + 27 + doCheck = false; 28 + # Missing dependencies (e.g. junit). Does not work. 29 + #checkPhase = '' 30 + # ant -f build/build.xml check 31 + #''; 32 + 33 + installPhase = '' 34 + ant -Dprefix=$out/share/ -f build/build.xml install 35 + 36 + # The sources contain a wrapper script in $out/share/DataExplorer/DataExplorer 37 + # but it hardcodes bash shebang and does not pin the java path. 38 + # So we create our own wrapper, using similar cmdline args as upstream. 39 + mkdir -p $out/bin 40 + makeWrapper ${jre}/bin/java $out/bin/DataExplorer \ 41 + --add-flags "-Dfile.encoding=UTF-8 -Xms64m -Xmx3092m -jar $out/share/DataExplorer/DataExplorer.jar" \ 42 + --set SWT_GTK3 0 43 + 44 + makeWrapper ${jre}/bin/java $out/bin/DevicePropertiesEditor \ 45 + --add-flags "-Dfile.encoding=UTF-8 -Xms32m -Xmx512m -classpath $out/share/DataExplorer/DataExplorer.jar gde.ui.dialog.edit.DevicePropertiesEditor" \ 46 + --set SWT_GTK3 0 \ 47 + --set LIBOVERLAY_SCROLLBAR 0 48 + 49 + install -Dvm644 build/misc/GNU_LINUX_JUNSI_ICHARER_DUO_UDEV_RULE/50-Junsi-iCharger-DUO.rules \ 50 + $out/etc/udev/rules.d/50-Junsi-iCharger-DUO.rules 51 + install -Dvm644 build/misc/GNU_LINUX_SKYRC_UDEV_RULE/50-SkyRC-Charger.rules \ 52 + $out/etc/udev/rules.d/50-SkyRC-Charger.rules 53 + ''; 54 + 55 + meta = with lib; { 56 + description = "Graphical tool to analyze data, gathered from various hardware devices"; 57 + homepage = "https://www.nongnu.org/dataexplorer/index.html"; 58 + license = licenses.gpl3Plus; 59 + maintainers = with maintainers; [ panicgh ]; 60 + platforms = jdk.meta.platforms; 61 + sourceProvenance = with sourceTypes; [ 62 + fromSource 63 + binaryNativeCode # contains RXTXcomm (JNI library with *.so files) 64 + binaryBytecode # contains thirdparty jar files, e.g. javax.json, org.glassfish.json 65 + ]; 66 + }; 67 + }
+2 -2
pkgs/applications/science/logic/cadical/default.nix
··· 2 2 3 3 stdenv.mkDerivation rec { 4 4 pname = "cadical"; 5 - version = "1.4.1"; 5 + version = "1.5.0"; 6 6 7 7 src = fetchFromGitHub { 8 8 owner = "arminbiere"; 9 9 repo = "cadical"; 10 10 rev = "rel-${version}"; 11 - sha256 = "0y44z3np4gssgdh4aj5qila7pshrbphycdxn2083i8ayyyjbxshp"; 11 + sha256 = "sha256-Po+pGoUwk1gtBqz4Sc/QQ52rRGbA2pATebX+KPYII5o="; 12 12 }; 13 13 14 14 outputs = [ "out" "dev" "lib" ];
+29
pkgs/applications/window-managers/sway/swayest-workstyle/default.nix
··· 1 + { lib 2 + , rustPlatform 3 + , fetchFromGitHub 4 + }: 5 + 6 + rustPlatform.buildRustPackage rec { 7 + pname = "swayest-workstyle"; 8 + version = "1.3.0"; 9 + 10 + src = fetchFromGitHub { 11 + owner = "Lyr-7D1h"; 12 + repo = "swayest_workstyle"; 13 + rev = version; 14 + sha256 = "sha256-LciTrYbmJV0y0H6QH88vTBXbDdDSx6FQtO4J/CFLjtY="; 15 + }; 16 + 17 + cargoSha256 = "sha256-34Ij3Hd1JI6d1vhv1XomFc9SFoB/6pbS39upLk+NeQM="; 18 + 19 + doCheck = false; # No tests 20 + 21 + meta = with lib; { 22 + description = "Map sway workspace names to icons defined depending on the windows inside of the workspace"; 23 + homepage = "https://github.com/Lyr-7D1h/swayest_workstyle"; 24 + license = licenses.mit; 25 + platforms = platforms.linux; 26 + maintainers = with maintainers; [ miangraham ]; 27 + mainProgram = "sworkstyle"; 28 + }; 29 + }
+2 -2
pkgs/common-updater/unstable-updater.nix
··· 8 8 9 9 # This is an updater for unstable packages that should always use the latest 10 10 # commit. 11 - { url ? null # The git url, if empty it will be set to src.url 11 + { url ? null # The git url, if empty it will be set to src.gitRepoUrl 12 12 , branch ? null 13 13 , stableVersion ? false # Use version format according to RFC 107 (i.e. LAST_TAG+date=YYYY-MM-DD) 14 14 , tagPrefix ? "" # strip this prefix from a tag name when using stable version ··· 46 46 esac 47 47 done 48 48 49 - # By default we set url to src.url 49 + # By default we set url to src.gitRepoUrl 50 50 if [[ -z "$url" ]]; then 51 51 url="$(${nix}/bin/nix-instantiate $systemArg --eval -E \ 52 52 "with import ./. {}; $UPDATE_NIX_ATTR_PATH.src.gitRepoUrl" \
+6 -8
pkgs/data/themes/catppuccin-gtk/default.nix
··· 5 5 , gnome-themes-extra 6 6 , gtk-engine-murrine 7 7 , sassc 8 - , which 9 8 , tweaks ? [ ] 10 9 , size ? "standard" 11 10 }: ··· 14 13 validTweaks = [ "nord" "dracula" "black" "rimless" "normal" ]; 15 14 16 15 unknownTweaks = lib.subtractLists validTweaks tweaks; 17 - illegalMix = !(lib.elem "nord" tweaks) && !(lib.elem "dracula" tweaks); 16 + illegalMix = (lib.elem "nord" tweaks) && (lib.elem "dracula" tweaks); 18 17 19 - assertIllegal = lib.assertMsg illegalMix '' 18 + assertIllegal = lib.assertMsg (!illegalMix) '' 20 19 Tweaks "nord" and "dracula" cannot be mixed. Tweaks: ${toString tweaks} 21 20 ''; 22 21 ··· 37 36 38 37 stdenvNoCC.mkDerivation rec { 39 38 pname = "catppuccin-gtk"; 40 - version = "unstable-2022-08-01"; 39 + version = "0.2.7"; 41 40 42 41 src = fetchFromGitHub { 43 42 repo = "gtk"; 44 43 owner = "catppuccin"; 45 - rev = "87a79fd2bf07accc694455df30a32a82b1b31f4f"; 46 - sha256 = "sha256-dKHTQva0BYkO6VPNfY/pzRn/V1ghX+tYqbnM9hTAMeE="; 44 + rev = "v-${version}"; 45 + sha256 = "sha256-oTAfURHMWqlKHk4CNz5cn6vO/7GmQJM2rXXGDz2e+0w="; 47 46 }; 48 47 49 - nativeBuildInputs = [ gtk3 sassc which ]; 48 + nativeBuildInputs = [ gtk3 sassc ]; 50 49 51 50 buildInputs = [ gnome-themes-extra ]; 52 51 ··· 61 60 62 61 export HOME=$(mktemp -d) 63 62 64 - mkdir -p $out/share/themes 65 63 bash install.sh -d $out/share/themes -t all \ 66 64 ${lib.optionalString (size != "") "-s ${size}"} \ 67 65 ${lib.optionalString (tweaks != []) "--tweaks " + builtins.toString tweaks}
+2 -2
pkgs/development/libraries/libjaylink/default.nix
··· 5 5 6 6 stdenv.mkDerivation rec { 7 7 pname = "libjaylink"; 8 - version = "0.3.0"; 8 + version = "0.3.1"; 9 9 10 10 src = fetchFromGitLab { 11 11 domain = "gitlab.zapb.de"; 12 12 owner = "libjaylink"; 13 13 repo = "libjaylink"; 14 14 rev = version; 15 - sha256 = "sha256-90obLaSE3oxrocyJWZ4+j4U4GuPIZEiiIQqenu4vsJg="; 15 + sha256 = "sha256-odJDE1A0WZ9vBXPxaUdthjTgmbmbdHjbyY1PkaM4+vI="; 16 16 }; 17 17 18 18 nativeBuildInputs = [ autoreconfHook pkg-config ];
+29 -12
pkgs/development/libraries/libspatialindex/default.nix
··· 1 - { lib, stdenv, fetchurl }: 1 + { lib, stdenv, fetchFromGitHub, fetchpatch, cmake }: 2 2 3 - stdenv.mkDerivation rec { 3 + stdenv.mkDerivation (finalAttrs: { 4 4 pname = "libspatialindex"; 5 - version = "1.8.5"; 5 + version = "1.9.3"; 6 6 7 - src = fetchurl { 8 - url = "https://download.osgeo.org/libspatialindex/spatialindex-src-${version}.tar.gz"; 9 - sha256 = "1vxzm7kczwnb6qdmc0hb00z8ykx11zk3sb68gc7rch4vrfi4dakw"; 7 + src = fetchFromGitHub { 8 + owner = "libspatialindex"; 9 + repo = "libspatialindex"; 10 + rev = finalAttrs.version; 11 + hash = "sha256-zsvS0IkCXyuNLCQpccKdAsFKoq0l+y66ifXlTHLNTkc="; 10 12 }; 11 13 12 - enableParallelBuilding = true; 14 + patches = [ 15 + # Allow building static libs 16 + (fetchpatch { 17 + name = "fix-static-lib-build.patch"; 18 + url = "https://github.com/libspatialindex/libspatialindex/commit/caee28d84685071da3ff3a4ea57ff0b6ae64fc87.patch"; 19 + hash = "sha256-nvTW/t9tw1ZLeycJY8nj7rQgZogxQb765Ca2b9NDvRo="; 20 + }) 21 + ]; 22 + 23 + nativeBuildInputs = [ cmake ]; 13 24 14 - meta = { 25 + cmakeFlags = [ 26 + "-DSIDX_BUILD_TESTS=${if finalAttrs.doCheck then "ON" else "OFF"}" 27 + ]; 28 + 29 + doCheck = true; 30 + 31 + meta = with lib; { 15 32 description = "Extensible spatial index library in C++"; 16 - homepage = "http://libspatialindex.github.io/"; 17 - license = lib.licenses.mit; 18 - platforms = lib.platforms.unix; 33 + homepage = "https://libspatialindex.org"; 34 + license = licenses.mit; 35 + platforms = platforms.unix; 19 36 }; 20 - } 37 + })
+1 -4
pkgs/development/libraries/qt-4.x/4.8/default.nix
··· 50 50 '' + lib.optionalString stdenv.cc.isClang '' 51 51 substituteInPlace src/3rdparty/webkit/Source/WebCore/html/HTMLImageElement.cpp \ 52 52 --replace 'optionalHeight > 0' 'optionalHeight != NULL' 53 - 54 - substituteInPlace ./tools/linguist/linguist/messagemodel.cpp \ 55 - --replace 'm->comment()) >= 0' 'm->comment()) != NULL' 56 53 ''; 57 54 58 55 patches = ··· 237 234 license = lib.licenses.lgpl21Plus; # or gpl3 238 235 maintainers = with lib.maintainers; [ orivej lovek323 sander ]; 239 236 platforms = lib.platforms.unix; 240 - badPlatforms = [ "x86_64-darwin" ]; 237 + badPlatforms = [ "x86_64-darwin" "aarch64-darwin" ]; 241 238 }; 242 239 }
-4
pkgs/development/libraries/science/math/arpack/default.nix
··· 45 45 install_name_tool -change libblas.dylib ${blas}/lib/libblas.dylib $out/lib/libarpack.dylib 46 46 ''; 47 47 48 - # disable stackprotector on aarch64-darwin for now 49 - # https://github.com/NixOS/nixpkgs/issues/127608 50 - hardeningDisable = lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ "stackprotector" ]; 51 - 52 48 meta = { 53 49 homepage = "https://github.com/opencollab/arpack-ng"; 54 50 description = ''
+2 -2
pkgs/development/libraries/speechd/default.nix
··· 27 27 inherit (python3Packages) python pyxdg wrapPython; 28 28 in stdenv.mkDerivation rec { 29 29 pname = "speech-dispatcher"; 30 - version = "0.11.1"; 30 + version = "0.11.2"; 31 31 32 32 src = fetchurl { 33 33 url = "https://github.com/brailcom/speechd/releases/download/${version}/${pname}-${version}.tar.gz"; 34 - sha256 = "sha256-0doS7T2shPE3mbai7Dm6LTyiGoST9E3BhVvQupbC3cY="; 34 + sha256 = "sha256-i0ZJkl5oy+GntMCge7BBznc4s1yQamAr+CmG2xqg82Q="; 35 35 }; 36 36 37 37 patches = [
-15
pkgs/development/libraries/sundials/default.nix
··· 61 61 )] 62 62 ; 63 63 64 - # disable stackprotector on aarch64-darwin for now 65 - # https://github.com/NixOS/nixpkgs/issues/127608 66 - # 67 - # build error: 68 - # 69 - # /private/tmp/nix-build-sundials-6.3.0.drv-0/ccD2dUtR.s:21:15: error: index must be an integer in range [-256, 255]. 70 - # ldr x0, [x0, ___stack_chk_guard];momd 71 - # ^ 72 - # /private/tmp/nix-build-sundials-6.3.0.drv-0/ccD2dUtR.s:46:15: error: index must be an integer in range [-256, 255]. 73 - # ldr x0, [x0, ___stack_chk_guard];momd 74 - # 75 - # See also a proposed solution: https://github.com/NixOS/nixpkgs/pull/151983 76 - 77 - hardeningDisable = lib.optionals (stdenv.isAarch64 && stdenv.isDarwin) [ "stackprotector" ]; 78 - 79 64 doCheck = true; 80 65 checkTarget = "test"; 81 66
+1 -1
pkgs/development/libraries/vapoursynth/default.nix
··· 50 50 ''; 51 51 52 52 meta = with lib; { 53 - broken = stdenv.isDarwin; 53 + broken = stdenv.isDarwin; # see https://github.com/NixOS/nixpkgs/pull/189446 for partial fix 54 54 description = "A video processing framework with the future in mind"; 55 55 homepage = "http://www.vapoursynth.com/"; 56 56 license = licenses.lgpl21;
+31
pkgs/development/misc/cppreference-doc/default.nix
··· 1 + { lib, fetchzip }: 2 + 3 + let 4 + pname = "cppreference-doc"; 5 + version = "2022.07.30"; 6 + ver = builtins.replaceStrings ["."] [""] version; 7 + 8 + in fetchzip { 9 + name = pname + "-" + version; 10 + 11 + url = "https://github.com/PeterFeicht/${pname}/releases/download/v${ver}/html-book-${ver}.tar.xz"; 12 + sha256 = "sha256-gsYNpdxbWnmwcC9IJV1g+e0/s4Hoo5ig1MGoYPIHspw="; 13 + 14 + stripRoot = false; 15 + 16 + postFetch = '' 17 + rm $out/cppreference-doxygen-local.tag.xml $out/cppreference-doxygen-web.tag.xml 18 + mkdir -p $out/share/cppreference/doc 19 + mv $out/reference $out/share/cppreference/doc/html 20 + ''; 21 + 22 + passthru = { inherit pname version; }; 23 + 24 + meta = with lib; { 25 + description = "C++ standard library reference"; 26 + homepage = "https://en.cppreference.com"; 27 + license = licenses.cc-by-sa-30; 28 + maintainers = with maintainers; [ panicgh ]; 29 + platforms = platforms.all; 30 + }; 31 + }
+2 -2
pkgs/development/tools/misc/saleae-logic-2/default.nix
··· 1 1 { lib, fetchurl, makeDesktopItem, appimageTools }: 2 2 let 3 3 name = "saleae-logic-2"; 4 - version = "2.3.58"; 4 + version = "2.3.59"; 5 5 src = fetchurl { 6 6 url = "https://downloads.saleae.com/logic2/Logic-${version}-master.AppImage"; 7 - sha256 = "sha256-WQa9J+rK71+T2IFUVpPLjkYfHy9GmZ9DZTBo+U4JKfo="; 7 + sha256 = "sha256-jIu/ODVD/x+TjcVSGlOw6/JWESJYDKZQrJGMAix9wTY="; 8 8 }; 9 9 desktopItem = makeDesktopItem { 10 10 inherit name;
+2 -2
pkgs/games/crawl/default.nix
··· 8 8 9 9 stdenv.mkDerivation rec { 10 10 pname = "crawl${lib.optionalString tileMode "-tiles"}"; 11 - version = "0.28.0"; 11 + version = "0.29.0"; 12 12 13 13 src = fetchFromGitHub { 14 14 owner = "crawl"; 15 15 repo = "crawl"; 16 16 rev = version; 17 - sha256 = "sha256-pVEE3g+NDwpsrakyj4YIk53aE+LCiIaRhOqos4huh9A="; 17 + sha256 = "sha256-SM8dSDV+88QGMqoFkITop1PHh9EakdgiV4tkXCw9pjM="; 18 18 }; 19 19 20 20 # Patch hard-coded paths and remove force library builds
+4 -4
pkgs/games/xivlauncher/default.nix
··· 3 3 , useSteamRun ? true }: 4 4 5 5 let 6 - rev = "6a1a59f687ac7b98698e2ebb97d82a94865e50f6"; 6 + rev = "6246fde6b54f8c7e340057fe2d940287c437153f"; 7 7 in 8 8 buildDotnetModule rec { 9 9 pname = "XIVLauncher"; 10 - version = "1.0.0.9"; 10 + version = "1.0.1.0"; 11 11 12 12 src = fetchFromGitHub { 13 13 owner = "goatcorp"; 14 14 repo = "FFXIVQuickLauncher"; 15 15 inherit rev; 16 - sha256 = "sha256-jRyYeTg73W58OH2fWmuVkjxEdyPNqDGRbEZwxBMfdCo="; 16 + sha256 = "sha256-sM909/ysrlwsiVSBrMo4cOZUWxjRA3ZSwlloGythOAY="; 17 17 }; 18 18 19 19 nativeBuildInputs = [ copyDesktopItems ]; 20 20 21 21 projectFile = "src/XIVLauncher.Core/XIVLauncher.Core.csproj"; 22 - nugetDeps = ./deps.nix; # File generated with `nuget-to-nix path/to/src > deps.nix` 22 + nugetDeps = ./deps.nix; # File generated with `nix-build -A xivlauncher.passthru.fetch-deps` 23 23 24 24 dotnetFlags = [ 25 25 "--runtime linux-x64"
+2 -3
pkgs/games/xivlauncher/deps.nix
··· 3 3 (fetchNuGet { pname = "CheapLoc"; version = "1.1.6"; sha256 = "1m6cgx9yh7h3vrq2d4f99xyvsxc9jvz8zjq1q14qgylfmyq4hx4l"; }) 4 4 (fetchNuGet { pname = "Config.Net"; version = "4.19.0"; sha256 = "17iv0vy0693s6d8626lbz3w1ppn5abn77aaki7h4qi4izysizgim"; }) 5 5 (fetchNuGet { pname = "Downloader"; version = "2.2.8"; sha256 = "0farwh3pc6m8hsgqywigdpcb4gr2m9myyxm2idzjmhhkzfqghj28"; }) 6 - (fetchNuGet { pname = "Facepunch.Steamworks"; version = "2.3.3"; sha256 = "1r3m7cyzfy8ms9xxfa13xcwha02yk22givkaamw166im89m8wqyc"; }) 7 6 (fetchNuGet { pname = "goaaats.NativeLibraryLoader"; version = "4.9.0-beta1-g70f642e82e"; sha256 = "1bjjgsw4ry9cz8dzsgwx428hn06wms194pqz8nclwrqcwfx7gmxk"; }) 7 + (fetchNuGet { pname = "goaaats.Steamworks"; version = "2.3.4"; sha256 = "1khxkkjvh6af60rxc13bacxn85amdfzr8z0b9a6gfg6m1fnmlkss"; }) 8 8 (fetchNuGet { pname = "goaaats.Veldrid"; version = "4.9.0-beta1-g70f642e82e"; sha256 = "0b35bn4190hxbvrwsygpbpg00gnrj6crxyk8b0d7ian611v4jj0m"; }) 9 9 (fetchNuGet { pname = "goaaats.Veldrid.ImageSharp"; version = "4.9.0-beta1-g70f642e82e"; sha256 = "1zihi2n9qz18kfkz4qnj3412bfsqvx49809hqkknixdrgn8323i2"; }) 10 10 (fetchNuGet { pname = "goaaats.Veldrid.MetalBindings"; version = "4.9.0-beta1-g70f642e82e"; sha256 = "13cs5jr8bpkrkzziz8b71l3npr14shxryrpsiw0zm7jcx69vg2qf"; }) ··· 13 13 (fetchNuGet { pname = "goaaats.Veldrid.StartupUtilities"; version = "4.9.0-beta1-g70f642e82e"; sha256 = "03r3x9h0fyb07d6d28ny6r5s688m50xc0lgc6zf2cy684kfnvmp5"; }) 14 14 (fetchNuGet { pname = "ImGui.NET"; version = "1.87.2"; sha256 = "0rv0n18fvz1gbh45crhzn1f8xw8zkc8qyiyj91vajjcry8mq1x7q"; }) 15 15 (fetchNuGet { pname = "KeySharp"; version = "1.0.5"; sha256 = "1ic10v0a174fw6w89iyg4yzji36bsj15573y676cj5n09n6s75d4"; }) 16 - (fetchNuGet { pname = "Microsoft.AspNetCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0ndah9cqkgswhi60wrnni10j1d2hdg8jljij83lk1wbfqbng86jm"; }) 17 16 (fetchNuGet { pname = "Microsoft.CodeAnalysis.Analyzers"; version = "3.3.3"; sha256 = "09m4cpry8ivm9ga1abrxmvw16sslxhy2k5sl14zckhqb1j164im6"; }) 18 17 (fetchNuGet { pname = "Microsoft.CodeAnalysis.BannedApiAnalyzers"; version = "3.3.3"; sha256 = "1z6x0d8lpcfjr3sxy25493i17vvcg5bsay6c03qan6mnj5aqzw2k"; }) 19 18 (fetchNuGet { pname = "Microsoft.CodeAnalysis.Common"; version = "4.0.1"; sha256 = "0axjv1nhk1z9d4c51d9yxdp09l8yqqnqaifhqcwnxnv0r4y5cka9"; }) 20 19 (fetchNuGet { pname = "Microsoft.CodeAnalysis.CSharp"; version = "4.0.1"; sha256 = "1h6jfifg7pw2vacpdds4v4jqnaydg9b108irf315wzx6rh8yv9cb"; }) 21 20 (fetchNuGet { pname = "Microsoft.CodeAnalysis.NetAnalyzers"; version = "6.0.0"; sha256 = "06zy947m5lrbwb684g42ijb07r5jsqycvfnphc6cqfdrfnzqv6k9"; }) 22 - (fetchNuGet { pname = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "6.0.6"; sha256 = "0fjbjh7yxqc9h47ix37y963xi9f9y99jvl26cw3x3kvjlb8x0bgj"; }) 23 21 (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.0.1"; sha256 = "01al6cfxp68dscl15z7rxfw9zvhm64dncsw09a1vmdkacsa2v6lr"; }) 24 22 (fetchNuGet { pname = "Microsoft.NETCore.Platforms"; version = "1.1.0"; sha256 = "08vh1r12g6ykjygq5d3vq09zylgb84l63k49jc4v8faw9g93iqqm"; }) 25 23 (fetchNuGet { pname = "Microsoft.NETCore.Targets"; version = "1.0.1"; sha256 = "0ppdkwy6s9p7x9jix3v4402wb171cdiibq7js7i13nxpdky7074p"; }) ··· 169 167 (fetchNuGet { pname = "System.Security.Permissions"; version = "6.0.0"; sha256 = "0jsl4xdrkqi11iwmisi1r2f2qn5pbvl79mzq877gndw6ans2zhzw"; }) 170 168 (fetchNuGet { pname = "System.Security.Principal"; version = "4.3.0"; sha256 = "12cm2zws06z4lfc4dn31iqv7072zyi4m910d4r6wm8yx85arsfxf"; }) 171 169 (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "4.3.0"; sha256 = "00a0a7c40i3v4cb20s2cmh9csb5jv2l0frvnlzyfxh848xalpdwr"; }) 170 + (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "5.0.0"; sha256 = "1mpk7xj76lxgz97a5yg93wi8lj0l8p157a5d50mmjy3gbz1904q8"; }) 172 171 (fetchNuGet { pname = "System.Security.Principal.Windows"; version = "6.0.0-preview.5.21301.5"; sha256 = "1q3iikvjcfrm5p89p1j7qlw1szvryq680qypk023wgy9phmlwi57"; }) 173 172 (fetchNuGet { pname = "System.Text.Encoding"; version = "4.0.11"; sha256 = "1dyqv0hijg265dwxg6l7aiv74102d6xjiwplh2ar1ly6xfaa4iiw"; }) 174 173 (fetchNuGet { pname = "System.Text.Encoding"; version = "4.3.0"; sha256 = "1f04lkir4iladpp51sdgmis9dj4y8v08cka0mbmsy0frc9a4gjqr"; })
+2 -2
pkgs/misc/lilypond/unstable.nix
··· 3 3 (lilypond.override { 4 4 inherit guile; 5 5 }).overrideAttrs (oldAttrs: rec { 6 - version = "2.23.11"; 6 + version = "2.23.12"; 7 7 src = fetchurl { 8 8 url = "https://lilypond.org/download/sources/v${lib.versions.majorMinor version}/lilypond-${version}.tar.gz"; 9 - sha256 = "sha256-4VjcuZvRmpPmiZ42zyk9xYPlsSN6kEsBSRe30P+raQ8="; 9 + sha256 = "sha256-SLZ9/Jybltd8+1HANk8pTGHRb7MuZSJJDDY/S4Kwz/k="; 10 10 }; 11 11 })
+41
pkgs/servers/web-apps/dolibarr/default.nix
··· 1 + { stdenv, lib, fetchFromGitHub, nixosTests, stateDir ? "/var/lib/dolibarr" }: 2 + 3 + stdenv.mkDerivation rec { 4 + pname = "dolibarr"; 5 + version = "15.0.3"; 6 + 7 + src = fetchFromGitHub { 8 + owner = "Dolibarr"; 9 + repo = "dolibarr"; 10 + rev = version; 11 + sha256 = "sha256-HMOYj93ZvqM0FQjt313yuGj/r9ELqQlnNkg/CxrBjRM="; 12 + }; 13 + 14 + dontBuild = true; 15 + 16 + postPatch = '' 17 + find . -type f -name "*.php" -print0 | xargs -0 sed -i 's|/etc/dolibarr|${stateDir}|g' 18 + 19 + substituteInPlace htdocs/filefunc.inc.php \ 20 + --replace '//$conffile = ' '$conffile = ' \ 21 + --replace '//$conffiletoshow = ' '$conffiletoshow = ' 22 + 23 + substituteInPlace htdocs/install/inc.php \ 24 + --replace '//$conffile = ' '$conffile = ' \ 25 + --replace '//$conffiletoshow = ' '$conffiletoshow = ' 26 + ''; 27 + 28 + installPhase = '' 29 + mkdir -p "$out" 30 + cp -r * $out 31 + ''; 32 + 33 + passthru.tests = { inherit (nixosTests) dolibarr; }; 34 + 35 + meta = with lib; { 36 + description = "A enterprise resource planning (ERP) and customer relationship manager (CRM) server"; 37 + homepage = "https://dolibarr.org/"; 38 + license = licenses.gpl3Plus; 39 + maintainers = [ maintainers.raitobezarius ]; 40 + }; 41 + }
+2 -2
pkgs/tools/inputmethods/fcitx5/fcitx5-lua.nix
··· 10 10 11 11 stdenv.mkDerivation rec { 12 12 pname = "fcitx5-lua"; 13 - version = "5.0.9"; 13 + version = "5.0.10"; 14 14 15 15 src = fetchFromGitHub { 16 16 owner = "fcitx"; 17 17 repo = pname; 18 18 rev = version; 19 - sha256 = "sha256-XeRMPbatXUudxo1EICL7z8V3slxkzo27f+D4xLjRtU4="; 19 + sha256 = "sha256-0ESgQv8kyc+zv/tDZtBZ+QhFFswD80ApwswFlJs8tOU="; 20 20 }; 21 21 22 22 nativeBuildInputs = [
+2 -2
pkgs/tools/inputmethods/fcitx5/fcitx5-qt.nix
··· 13 13 14 14 mkDerivation rec { 15 15 pname = "fcitx5-qt"; 16 - version = "5.0.14"; 16 + version = "5.0.15"; 17 17 18 18 src = fetchFromGitHub { 19 19 owner = "fcitx"; 20 20 repo = pname; 21 21 rev = version; 22 - sha256 = "sha256-LmE6HgNLoJmgJtJmubAIjFi8Xpnmw3hgqJh6HUcakzg="; 22 + sha256 = "sha256-yQFYol4rEXmQBJWoc96yWJkJc3RVP6U964tdJdkGelU="; 23 23 }; 24 24 25 25 preConfigure = ''
+10 -2
pkgs/top-level/all-packages.nix
··· 3645 3645 3646 3646 dokuwiki = callPackage ../servers/web-apps/dokuwiki { }; 3647 3647 3648 + dolibarr = callPackage ../servers/web-apps/dolibarr { }; 3649 + 3648 3650 doppler = callPackage ../tools/security/doppler {}; 3649 3651 3650 3652 dosage = callPackage ../applications/graphics/dosage { }; ··· 15441 15443 15442 15444 avr8burnomat = callPackage ../development/misc/avr8-burn-omat { }; 15443 15445 15446 + cppreference-doc = callPackage ../development/misc/cppreference-doc { }; 15447 + 15444 15448 sourceFromHead = callPackage ../build-support/source-from-head-fun.nix {}; 15445 15449 15446 15450 jruby = callPackage ../development/interpreters/jruby { }; ··· 20216 20220 withUtils = false; 20217 20221 }); 20218 20222 20219 - libva = callPackage ../development/libraries/libva { }; 20220 - libva-minimal = libva.override { minimal = true; }; 20223 + libva-minimal = callPackage ../development/libraries/libva { minimal = true; }; 20224 + libva = libva-minimal.override { minimal = false; }; 20221 20225 libva-utils = callPackage ../development/libraries/libva/utils.nix { }; 20222 20226 20223 20227 libva1 = callPackage ../development/libraries/libva/1.nix { }; ··· 28444 28448 28445 28449 swaynag-battery = callPackage ../applications/misc/swaynag-battery {}; 28446 28450 28451 + swayest-workstyle = callPackage ../applications/window-managers/sway/swayest-workstyle { }; 28452 + 28447 28453 tiramisu = callPackage ../applications/misc/tiramisu { }; 28448 28454 28449 28455 rlaunch = callPackage ../applications/misc/rlaunch { ··· 34879 34885 caneda = libsForQt5.callPackage ../applications/science/electronics/caneda { }; 34880 34886 34881 34887 csxcad = callPackage ../applications/science/electronics/csxcad { }; 34888 + 34889 + dataexplorer = callPackage ../applications/science/electronics/dataexplorer { }; 34882 34890 34883 34891 diylc = callPackage ../applications/science/electronics/diylc { }; 34884 34892