Merge commit '5203378d1dbf394970184006df4d6111065601a4' into haskell-updates
This commit is contained in:
+6
-6
@@ -210,7 +210,7 @@ The last checkbox is about whether it fits the guidelines in this `CONTRIBUTING.
|
||||
This document details our standards for commit messages, reviews, licensing of contributions, etc...
|
||||
Everyone should read and understand these standards before submitting a pull request.
|
||||
|
||||
### Rebasing between branches (i.e. from master to staging)
|
||||
### Rebasing between branches (i.e. from `master` to `staging`)
|
||||
[rebase]: #rebasing-between-branches-ie-from-master-to-staging
|
||||
|
||||
Sometimes, changes must be rebased between branches.
|
||||
@@ -271,8 +271,8 @@ To manually create a backport, follow [the standard pull request process][pr-cre
|
||||
Here is [an example](https://github.com/nixos/nixpkgs/commit/5688c39af5a6c5f3d646343443683da880eaefb8).
|
||||
|
||||
> [!Warning]
|
||||
> Ensure the commits exist on the master branch.
|
||||
> In the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the master pull request.
|
||||
> Ensure the commits exist on the `master` branch.
|
||||
> In the case of squashed or rebased merges, the commit hash will change and the new commits can be found in the merge message at the bottom of the `master` pull request.
|
||||
|
||||
- In the pull request description, link to the original pull request to `master`.
|
||||
The pull request title should include `[YY.MM]` matching the release you're backporting to.
|
||||
@@ -460,7 +460,7 @@ Is the change [acceptable for releases][release-acceptable] and do you wish to h
|
||||
- Yes: Use the `master` branch and [backport the pull request](#how-to-backport-pull-requests).
|
||||
- No: Create separate pull requests to the `master` and `release-YY.MM` branches.
|
||||
|
||||
If the change causes a [mass rebuild][mass-rebuild], use the staging branch instead:
|
||||
If the change causes a [mass rebuild][mass-rebuild], use the `staging` branch instead:
|
||||
- Mass rebuilds to `master` should go to `staging` instead.
|
||||
- Mass rebuilds to `release-YY.MM` should go to `staging-YY.MM` instead.
|
||||
|
||||
@@ -492,8 +492,8 @@ In addition, major package version updates with breaking changes are also accept
|
||||
|
||||
Which changes cause mass rebuilds is not formally defined.
|
||||
In order to help the decision, CI automatically assigns [`rebuild` labels](https://github.com/NixOS/nixpkgs/labels?q=rebuild) to pull requests based on the number of packages they cause rebuilds for.
|
||||
As a rule of thumb, if the number of rebuilds is **over 500**, it can be considered a mass rebuild.
|
||||
To get a sense for what changes are considered mass rebuilds, see [previously merged pull requests to the staging branches](https://github.com/NixOS/nixpkgs/issues?q=base%3Astaging+-base%3Astaging-next+is%3Amerged).
|
||||
As a rule of thumb, if the number of rebuilds is **500 or more**, consider targeting the `staging` branch instead of `master`; if the number is **1000 or more**, the pull request causes a mass rebuild, and should target the `staging` branch.
|
||||
See [previously merged pull requests to the staging branches](https://github.com/NixOS/nixpkgs/issues?q=base%3Astaging+-base%3Astaging-next+is%3Amerged) to get a sense for what changes are considered mass rebuilds.
|
||||
|
||||
## Commit conventions
|
||||
[commit-conventions]: #commit-conventions
|
||||
|
||||
@@ -337,7 +337,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
|
||||
/pkgs/development/compilers/idris2 @mattpolzin
|
||||
|
||||
# Bazel
|
||||
/pkgs/development/tools/build-managers/bazel @Profpatsch
|
||||
/pkgs/by-name/ba/bazel_7 @Profpatsch
|
||||
|
||||
# NixOS modules for e-mail and dns services
|
||||
/nixos/modules/services/mail/mailman.nix @peti
|
||||
|
||||
@@ -48,6 +48,16 @@
|
||||
|
||||
- `conduwuit` was removed due to upstream ceasing development and deleting their repository. For existing data, a migration to `matrix-conduit`, `matrix-continuwuity` or `matrix-tuwunel` may be possible.
|
||||
|
||||
- The GHCJS 8.10.7, exposed via `haskell.compiler.ghcjs` and `haskell.compiler.ghcjs810`, has been removed. Downstream users should migrate their projects to the new JavaScript backend of GHC proper which can be used via `pkgsCross.ghcjs` from Nixpkgs. Haskell packaging code, like `haskellPackages.mkDerivation`, `ghcWithPackages` and `hoogleWithPackages`, also no longer supports GHCJS.
|
||||
|
||||
- The `ghcInfo` and `controlPhases` functions have been removed from `haskell.lib.compose` and `haskell.lib`. They were unused and would return incorrect results.
|
||||
|
||||
- Instead of using `controlPhases`, the `doCheck` attribute of derivations can be accessed which is more accurate. `doBenchmark` can't be introspected at the moment.
|
||||
- To detect cross compilation, the relevant platforms exposed by `stdenv` should be compared instead of using `ghcInfo`.
|
||||
- Nixpkgs no longer packages any `ghcjs` compiler.
|
||||
- To find a suitable `nativeGhc`, `buildHaskellPackages` should be used. `ghcInfo` would use `ghc.bootPkgs.ghc` if cross compiling,
|
||||
and the given `ghc` otherwise. This approach is not recommended since it results in mismatched GHC versions.
|
||||
|
||||
- `gnome-keyring` no longer ships with an SSH agent anymore because it has been deprecated upstream. You should use `gcr_4` instead, which provides the same features. More information on why this was done can be found on [the relevant GCR upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67).
|
||||
|
||||
- `stdenv.mkDerivation` and other derivation builders that use it no longer allow the value of `env` to be anything but an attribute set, for the purpose of setting environment variables that are available to the [builder](https://nix.dev/manual/nix/latest/store/derivation/#builder) process. An environment variable called `env` can still be provided by means of `mkDerivation { env.env = ...; }`, though we recommend to use a more specific name than "env".
|
||||
|
||||
@@ -7029,6 +7029,13 @@
|
||||
name = "Duncan Dean";
|
||||
keys = [ { fingerprint = "9484 44FC E03B 05BA 5AB0 591E C37B 1C1D 44C7 86EE"; } ];
|
||||
};
|
||||
dustyhorizon = {
|
||||
name = "Kenneth Tan";
|
||||
email = "i.am@kennethtan.xyz";
|
||||
github = "dustyhorizon";
|
||||
githubId = 4987132;
|
||||
keys = [ { fingerprint = "1021 2207 286B F15B 0CF1 C5EA D70C C9F5 CEF4 EEB8"; } ];
|
||||
};
|
||||
DutchGerman = {
|
||||
name = "Stefan Visser";
|
||||
email = "stefan.visser@apm-ecampus.de";
|
||||
@@ -10083,6 +10090,12 @@
|
||||
githubId = 665472;
|
||||
matrix = "@hehongbo:matrix.org";
|
||||
};
|
||||
heichro = {
|
||||
github = "heichro";
|
||||
githubId = 76887148;
|
||||
keys = [ { fingerprint = "BBA7 9E8E 17FE 9C3F BFEA 61E8 30D0 186F 4E19 7E48"; } ];
|
||||
name = "heichro";
|
||||
};
|
||||
heijligen = {
|
||||
email = "src@posteo.de";
|
||||
github = "heijligen";
|
||||
@@ -21771,6 +21784,18 @@
|
||||
githubId = 10631029;
|
||||
name = "Richard Ipsum";
|
||||
};
|
||||
richardjacton = {
|
||||
email = "richardjacton@richardjacton.net";
|
||||
github = "richardjacton";
|
||||
githubId = 6893043;
|
||||
name = "Richard J. Acton";
|
||||
matrix = "@richardjacton:matrix.org";
|
||||
keys = [
|
||||
{
|
||||
fingerprint = "5EE1 1764 8462 E5A3 610C 1964 8E5D EFCF C330 7916";
|
||||
}
|
||||
];
|
||||
};
|
||||
richiejp = {
|
||||
email = "io@richiejp.com";
|
||||
github = "richiejp";
|
||||
|
||||
@@ -32,8 +32,6 @@ Alongside many enhancements to NixOS modules and general system improvements, th
|
||||
inputs.nixpkgs.url = "https://channels.nixos.org/nixos-25.05/nixexprs.tar.xz";
|
||||
```
|
||||
|
||||
- Syncthing has been updated to version 2.0.0.
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
## New Modules {#sec-release-25.05-new-modules}
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
|
||||
- `nixos-rebuild-ng`, a full rewrite of `nixos-rebuild` in Python, is enabled by default from this release. You can disable it by setting [](#opt-system.rebuild.enableNg) to `false` in your configuration if you need, but please report any issues. It is expected that the next major version of NixOS (26.05) will remove the {option}`system.rebuild.enableNg` option.
|
||||
|
||||
- `rEFInd`, a graphical boot manager for UEFI systems, can now be used through [](#opt-boot.loader.refind.enable).
|
||||
|
||||
- Secure boot support can now be enabled for the Limine bootloader through {option}`boot.loader.limine.secureBoot.enable`. Bootloader install script signs the bootloader, then kernels are hashed during system rebuild and written to a config. This allows Limine to boot only the kernels installed through NixOS system.
|
||||
|
||||
- The default PostgreSQL version for new NixOS installations (i.e. with `system.stateVersion >= 25.11`) is v17.
|
||||
@@ -14,6 +16,8 @@
|
||||
|
||||
- The Qt 5-based versions of KDE Gear, Plasma, Maui and Deepin have been removed. Users are advised to migrate to Plasma 6 and Gear 25.08, available under `kdePackages`.
|
||||
|
||||
- Syncthing has been updated to version 2.0.0.
|
||||
|
||||
## New Modules {#sec-release-25.11-new-modules}
|
||||
|
||||
<!-- To avoid merge conflicts, consider adding your item at an arbitrary place in the list instead. -->
|
||||
|
||||
@@ -1817,6 +1817,7 @@
|
||||
./system/boot/loader/init-script/init-script.nix
|
||||
./system/boot/loader/limine/limine.nix
|
||||
./system/boot/loader/loader.nix
|
||||
./system/boot/loader/refind/refind.nix
|
||||
./system/boot/loader/systemd-boot/systemd-boot.nix
|
||||
./system/boot/luksroot.nix
|
||||
./system/boot/modprobe.nix
|
||||
|
||||
@@ -10,7 +10,7 @@ let
|
||||
in
|
||||
{
|
||||
options.programs.vim = {
|
||||
enable = lib.mkEnableOption "Vi IMproved, an advanced text";
|
||||
enable = lib.mkEnableOption "Vi IMproved, an advanced text editor";
|
||||
|
||||
defaultEditor = lib.mkEnableOption "vim as the default editor";
|
||||
|
||||
|
||||
@@ -0,0 +1,344 @@
|
||||
#!@python3@/bin/python3 -B
|
||||
|
||||
from dataclasses import dataclass
|
||||
from typing import Any, Callable, Dict, List, Optional, Tuple
|
||||
|
||||
import datetime
|
||||
import json
|
||||
from ctypes import CDLL
|
||||
import os
|
||||
import psutil
|
||||
import re
|
||||
import shutil
|
||||
import subprocess
|
||||
import textwrap
|
||||
|
||||
|
||||
refind_dir = None
|
||||
libc = CDLL("libc.so.6")
|
||||
install_config = json.load(open('@configPath@', 'r'))
|
||||
|
||||
|
||||
def config(*path: str) -> Optional[Any]:
|
||||
result = install_config
|
||||
for component in path:
|
||||
result = result[component]
|
||||
return result
|
||||
|
||||
|
||||
def get_system_path(profile: str = 'system', gen: Optional[str] = None, spec: Optional[str] = None) -> str:
|
||||
basename = f'{profile}-{gen}-link' if gen is not None else profile
|
||||
profiles_dir = '/nix/var/nix/profiles'
|
||||
if profile == 'system':
|
||||
result = os.path.join(profiles_dir, basename)
|
||||
else:
|
||||
result = os.path.join(profiles_dir, 'system-profiles', basename)
|
||||
|
||||
if spec is not None:
|
||||
result = os.path.join(result, 'specialisation', spec)
|
||||
|
||||
return result
|
||||
|
||||
|
||||
def get_profiles() -> List[str]:
|
||||
profiles_dir = '/nix/var/nix/profiles/system-profiles/'
|
||||
dirs = os.listdir(profiles_dir) if os.path.isdir(profiles_dir) else []
|
||||
|
||||
return [path for path in dirs if not path.endswith('-link')]
|
||||
|
||||
|
||||
def get_gens(profile: str = 'system') -> List[Tuple[int, List[str]]]:
|
||||
nix_env = os.path.join(config('nixPath'), 'bin', 'nix-env')
|
||||
output = subprocess.check_output([
|
||||
nix_env, '--list-generations',
|
||||
'-p', get_system_path(profile),
|
||||
'--option', 'build-users-group', '',
|
||||
], universal_newlines=True)
|
||||
|
||||
gen_lines = output.splitlines()
|
||||
gen_nums = [int(line.split()[0]) for line in gen_lines]
|
||||
|
||||
return [gen for gen in gen_nums][-config('maxGenerations'):]
|
||||
|
||||
|
||||
def is_encrypted(device: str) -> bool:
|
||||
for name, _ in config('luksDevices'):
|
||||
if os.readlink(os.path.join('/dev/mapper', name)) == os.readlink(device):
|
||||
return True
|
||||
|
||||
return False
|
||||
|
||||
|
||||
def is_fs_type_supported(fs_type: str) -> bool:
|
||||
return fs_type.startswith('vfat')
|
||||
|
||||
|
||||
paths = {}
|
||||
|
||||
def get_copied_path_uri(path: str, target: str) -> str:
|
||||
package_id = os.path.basename(os.path.dirname(path))
|
||||
suffix = os.path.basename(path)
|
||||
dest_file = f'{package_id}-{suffix}'
|
||||
dest_path = os.path.join(refind_dir, target, dest_file)
|
||||
|
||||
if not os.path.exists(dest_path):
|
||||
copy_file(path, dest_path)
|
||||
else:
|
||||
paths[dest_path] = True
|
||||
|
||||
return os.path.join('/efi/refind', target, dest_file)
|
||||
|
||||
def get_path_uri(path: str) -> str:
|
||||
return get_copied_path_uri(path, "")
|
||||
|
||||
|
||||
def get_file_uri(profile: str, gen: Optional[str], spec: Optional[str], name: str) -> str:
|
||||
gen_path = get_system_path(profile, gen, spec)
|
||||
path_in_store = os.path.realpath(os.path.join(gen_path, name))
|
||||
return get_path_uri(path_in_store)
|
||||
|
||||
|
||||
def get_kernel_uri(kernel_path: str) -> str:
|
||||
return get_copied_path_uri(kernel_path, "kernels")
|
||||
|
||||
|
||||
@dataclass
|
||||
class BootSpec:
|
||||
system: str
|
||||
init: str
|
||||
kernel: str
|
||||
kernelParams: List[str]
|
||||
label: str
|
||||
toplevel: str
|
||||
specialisations: Dict[str, "BootSpec"]
|
||||
initrd: str | None = None
|
||||
initrdSecrets: str | None = None
|
||||
|
||||
|
||||
def bootjson_to_bootspec(bootjson: dict) -> BootSpec:
|
||||
specialisations = bootjson['org.nixos.specialisation.v1']
|
||||
specialisations = {k: bootjson_to_bootspec(v) for k, v in specialisations.items()}
|
||||
return BootSpec(
|
||||
**bootjson['org.nixos.bootspec.v1'],
|
||||
specialisations=specialisations,
|
||||
)
|
||||
|
||||
|
||||
def config_entry(is_sub: bool, bootspec: BootSpec, label: str, time: str) -> str:
|
||||
entry = ""
|
||||
if is_sub:
|
||||
entry += 'sub'
|
||||
|
||||
entry += f'menuentry "{label}" {{\n'
|
||||
entry += ' loader ' + get_kernel_uri(bootspec.kernel) + '\n'
|
||||
|
||||
if bootspec.initrd:
|
||||
entry += ' initrd ' + get_kernel_uri(bootspec.initrd) + '\n'
|
||||
|
||||
entry += ' options "' + ' '.join(['init=' + bootspec.init] + bootspec.kernelParams).strip() + '"\n'
|
||||
entry += '}\n'
|
||||
return entry
|
||||
|
||||
|
||||
def generate_config_entry(profile: str, gen: str, special: bool, group_name: str) -> str:
|
||||
time = datetime.datetime.fromtimestamp(os.stat(get_system_path(profile,gen), follow_symlinks=False).st_mtime).strftime("%F %H:%M:%S")
|
||||
boot_json = json.load(open(os.path.join(get_system_path(profile, gen), 'boot.json'), 'r'))
|
||||
boot_spec = bootjson_to_bootspec(boot_json)
|
||||
|
||||
specialisation_list = boot_spec.specialisations.items()
|
||||
entry = ""
|
||||
|
||||
if len(specialisation_list) > 0:
|
||||
entry += f'menuentry "NixOS {group_name} Generation {gen}" {{\n'
|
||||
entry += config_entry(True, boot_spec, f'Default', str(time))
|
||||
|
||||
for spec, spec_boot_spec in specialisation_list:
|
||||
entry += config_entry(True, spec_boot_spec, f'{spec}', str(time))
|
||||
|
||||
entry += '}\n'
|
||||
else:
|
||||
entry += config_entry(False, boot_spec, f'NixOS {group_name} Generation {gen}', str(time))
|
||||
return entry
|
||||
|
||||
|
||||
def find_disk_device(part: str) -> str:
|
||||
part = os.path.realpath(part)
|
||||
part = part.removeprefix('/dev/')
|
||||
disk = os.path.realpath(os.path.join('/sys', 'class', 'block', part))
|
||||
disk = os.path.dirname(disk)
|
||||
|
||||
return os.path.join('/dev', os.path.basename(disk))
|
||||
|
||||
|
||||
def find_mounted_device(path: str) -> str:
|
||||
path = os.path.abspath(path)
|
||||
|
||||
while not os.path.ismount(path):
|
||||
path = os.path.dirname(path)
|
||||
|
||||
devices = [x for x in psutil.disk_partitions() if x.mountpoint == path]
|
||||
|
||||
assert len(devices) == 1
|
||||
return devices[0].device
|
||||
|
||||
|
||||
def copy_file(from_path: str, to_path: str):
|
||||
dirname = os.path.dirname(to_path)
|
||||
|
||||
if not os.path.exists(dirname):
|
||||
os.makedirs(dirname)
|
||||
|
||||
shutil.copyfile(from_path, to_path + ".tmp")
|
||||
os.rename(to_path + ".tmp", to_path)
|
||||
|
||||
paths[to_path] = True
|
||||
|
||||
|
||||
def install_bootloader() -> None:
|
||||
global refind_dir
|
||||
|
||||
refind_dir = os.path.join(str(config('efiMountPoint')), 'efi', 'refind')
|
||||
|
||||
if not os.path.exists(refind_dir):
|
||||
os.makedirs(refind_dir)
|
||||
else:
|
||||
for dir, dirs, files in os.walk(refind_dir, topdown=True):
|
||||
for file in files:
|
||||
paths[os.path.join(dir, file)] = False
|
||||
|
||||
profiles = [('system', get_gens())]
|
||||
|
||||
for profile in get_profiles():
|
||||
profiles += [(profile, get_gens(profile))]
|
||||
|
||||
timeout = config('timeout')
|
||||
|
||||
last_gen = get_gens()[-1]
|
||||
last_gen_json = json.load(open(os.path.join(get_system_path('system', last_gen), 'boot.json'), 'r'))
|
||||
last_gen_boot_spec = bootjson_to_bootspec(last_gen_json)
|
||||
|
||||
config_file = str(config('extraConfig')) + '\n'
|
||||
config_file += textwrap.dedent(f'''
|
||||
timeout {timeout}
|
||||
default_selection {3 if len(last_gen_boot_spec.specialisations.items()) > 0 else 2}
|
||||
''')
|
||||
|
||||
config_file += textwrap.dedent('''
|
||||
# NixOS boot entries start here
|
||||
''')
|
||||
|
||||
for (profile, gens) in profiles:
|
||||
group_name = 'default profile' if profile == 'system' else f"profile '{profile}'"
|
||||
isFirst = True
|
||||
|
||||
for gen in sorted(gens, key=lambda x: x, reverse=True):
|
||||
config_file += generate_config_entry(profile, gen, isFirst, group_name)
|
||||
isFirst = False
|
||||
|
||||
config_file_path = os.path.join(refind_dir, 'refind.conf')
|
||||
config_file += '\n# NixOS boot entries end here\n\n'
|
||||
|
||||
with open(f"{config_file_path}.tmp", 'w') as file:
|
||||
file.truncate()
|
||||
file.write(config_file.strip())
|
||||
file.flush()
|
||||
os.fsync(file.fileno())
|
||||
os.rename(f"{config_file_path}.tmp", config_file_path)
|
||||
|
||||
paths[config_file_path] = True
|
||||
|
||||
for dest_path, source_path in config('additionalFiles').items():
|
||||
dest_path = os.path.join(refind_dir, dest_path)
|
||||
|
||||
copy_file(source_path, dest_path)
|
||||
|
||||
cpu_family = config('hostArchitecture', 'family')
|
||||
if cpu_family == 'x86':
|
||||
if config('hostArchitecture', 'bits') == 32:
|
||||
boot_file = 'BOOTIA32.EFI'
|
||||
efi_file = 'refind_ia32.efi'
|
||||
elif config('hostArchitecture', 'bits') == 64:
|
||||
boot_file = 'BOOTX64.EFI'
|
||||
efi_file = 'refind_x64.efi'
|
||||
elif cpu_family == 'arm':
|
||||
if config('hostArchitecture', 'arch') == 'armv8-a' and config('hostArchitecture', 'bits') == 64:
|
||||
boot_file = 'BOOTAA64.EFI'
|
||||
efi_file = 'refind_aa64.efi'
|
||||
else:
|
||||
raise Exception(f'Unsupported CPU arch: {config("hostArchitecture", "arch")}')
|
||||
else:
|
||||
raise Exception(f'Unsupported CPU family: {cpu_family}')
|
||||
|
||||
efi_path = os.path.join(config('refindPath'), 'share', 'refind', efi_file)
|
||||
dest_path = os.path.join(config('efiMountPoint'), 'efi', 'boot' if config('efiRemovable') else 'refind', boot_file)
|
||||
|
||||
copy_file(efi_path, dest_path)
|
||||
|
||||
if not config('efiRemovable') and not config('canTouchEfiVariables'):
|
||||
print('warning: boot.loader.efi.canTouchEfiVariables is set to false while boot.loader.limine.efiInstallAsRemovable.\n This may render the system unbootable.')
|
||||
|
||||
if config('canTouchEfiVariables'):
|
||||
if config('efiRemovable'):
|
||||
print('note: boot.loader.limine.efiInstallAsRemovable is true, no need to add EFI entry.')
|
||||
else:
|
||||
efibootmgr = os.path.join(str(config('efiBootMgrPath')), 'bin', 'efibootmgr')
|
||||
efi_partition = find_mounted_device(str(config('efiMountPoint')))
|
||||
efi_disk = find_disk_device(efi_partition)
|
||||
|
||||
efibootmgr_output = subprocess.check_output([efibootmgr], stderr=subprocess.STDOUT, universal_newlines=True)
|
||||
|
||||
# Check the output of `efibootmgr` to find if rEFInd is already installed and present in the boot record
|
||||
refind_boot_entry = None
|
||||
if matches := re.findall(r'Boot([0-9a-fA-F]{4})\*? rEFInd', efibootmgr_output):
|
||||
refind_boot_entry = matches[0]
|
||||
|
||||
# If there's already a Limine entry, replace it
|
||||
if refind_boot_entry:
|
||||
boot_order = re.findall(r'BootOrder: ((?:[0-9a-fA-F]{4},?)*)', efibootmgr_output)[0]
|
||||
|
||||
efibootmgr_output = subprocess.check_output([
|
||||
efibootmgr,
|
||||
'-b', refind_boot_entry,
|
||||
'-B',
|
||||
], stderr=subprocess.STDOUT, universal_newlines=True)
|
||||
|
||||
efibootmgr_output = subprocess.check_output([
|
||||
efibootmgr,
|
||||
'-c',
|
||||
'-b', refind_boot_entry,
|
||||
'-d', efi_disk,
|
||||
'-p', efi_partition.removeprefix(efi_disk).removeprefix('p'),
|
||||
'-l', f'\\efi\\refind\\{boot_file}',
|
||||
'-L', 'rEFInd',
|
||||
'-o', boot_order,
|
||||
], stderr=subprocess.STDOUT, universal_newlines=True)
|
||||
else:
|
||||
efibootmgr_output = subprocess.check_output([
|
||||
efibootmgr,
|
||||
'-c',
|
||||
'-d', efi_disk,
|
||||
'-p', efi_partition.removeprefix(efi_disk).removeprefix('p'),
|
||||
'-l', f'\\efi\\refind\\{boot_file}',
|
||||
'-L', 'rEFInd',
|
||||
], stderr=subprocess.STDOUT, universal_newlines=True)
|
||||
|
||||
print("removing unused boot files...")
|
||||
for path in paths:
|
||||
if not paths[path]:
|
||||
os.remove(path)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
try:
|
||||
install_bootloader()
|
||||
finally:
|
||||
# Since fat32 provides little recovery facilities after a crash,
|
||||
# it can leave the system in an unbootable state, when a crash/outage
|
||||
# happens shortly after an update. To decrease the likelihood of this
|
||||
# event sync the efi filesystem after each update.
|
||||
rc = libc.syncfs(os.open(f"{config('efiMountPoint')}", os.O_RDONLY))
|
||||
if rc != 0:
|
||||
print(f"could not sync {config('efiMountPoint')}: {os.strerror(rc)}", file=sys.stderr)
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
@@ -0,0 +1,117 @@
|
||||
{
|
||||
config,
|
||||
options,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
let
|
||||
inherit (lib)
|
||||
mkIf
|
||||
mkEnableOption
|
||||
mkOption
|
||||
literalExpression
|
||||
types
|
||||
;
|
||||
|
||||
cfg = config.boot.loader.refind;
|
||||
efi = config.boot.loader.efi;
|
||||
refindInstallConfig = pkgs.writeText "refind-install.json" (
|
||||
builtins.toJSON {
|
||||
nixPath = config.nix.package;
|
||||
efiBootMgrPath = pkgs.efibootmgr;
|
||||
refindPath = cfg.package;
|
||||
efiMountPoint = efi.efiSysMountPoint;
|
||||
fileSystems = config.fileSystems;
|
||||
luksDevices = config.boot.initrd.luks.devices;
|
||||
canTouchEfiVariables = efi.canTouchEfiVariables;
|
||||
efiRemovable = cfg.efiInstallAsRemovable;
|
||||
maxGenerations = if cfg.maxGenerations == null then 0 else cfg.maxGenerations;
|
||||
hostArchitecture = pkgs.stdenv.hostPlatform.parsed.cpu;
|
||||
timeout = if config.boot.loader.timeout != null then config.boot.loader.timeout else 10;
|
||||
extraConfig = cfg.extraConfig;
|
||||
additionalFiles = cfg.additionalFiles;
|
||||
}
|
||||
);
|
||||
in
|
||||
{
|
||||
meta = {
|
||||
inherit (pkgs.refind.meta) maintainers;
|
||||
};
|
||||
|
||||
options = {
|
||||
boot.loader.refind = {
|
||||
enable = mkEnableOption "the rEFInd boot loader";
|
||||
extraConfig = lib.mkOption {
|
||||
default = "";
|
||||
type = types.lines;
|
||||
description = ''
|
||||
A string which is prepended to refind.conf.
|
||||
'';
|
||||
};
|
||||
package = lib.mkPackageOption pkgs "refind" { };
|
||||
maxGenerations = lib.mkOption {
|
||||
default = null;
|
||||
example = 50;
|
||||
type = types.nullOr types.int;
|
||||
description = ''
|
||||
Maximum number of latest generations in the boot menu.
|
||||
Useful to prevent boot partition of running out of disk space.
|
||||
`null` means no limit i.e. all generations that were not
|
||||
garbage collected yet.
|
||||
'';
|
||||
};
|
||||
additionalFiles = mkOption {
|
||||
default = { };
|
||||
type = types.attrsOf types.path;
|
||||
example = literalExpression ''
|
||||
{ "efi/memtest86/memtest86.efi" = "''${pkgs.memtest86-efi}/BOOTX64.efi"; }
|
||||
'';
|
||||
description = ''
|
||||
A set of files to be copied to {file}`/boot`. Each attribute name denotes the
|
||||
destination file name in {file}`/boot`, while the corresponding attribute value
|
||||
specifies the source file.
|
||||
'';
|
||||
};
|
||||
efiInstallAsRemovable = mkEnableOption null // {
|
||||
default = !efi.canTouchEfiVariables;
|
||||
defaultText = literalExpression "!config.boot.loader.efi.canTouchEfiVariables";
|
||||
description = ''
|
||||
Whether or not to install the rEFInd EFI files as removable.
|
||||
|
||||
See {option}`boot.loader.grub.efiInstallAsRemovable`
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion =
|
||||
pkgs.stdenv.hostPlatform.isx86_64
|
||||
|| pkgs.stdenv.hostPlatform.isi686
|
||||
|| pkgs.stdenv.hostPlatform.isAarch64;
|
||||
message = "rEFInd can only be installed on aarch64 & x86 platforms";
|
||||
}
|
||||
{
|
||||
assertion = pkgs.stdenv.hostPlatform.isEfi;
|
||||
message = "rEFInd can only be installed on UEFI platforms";
|
||||
}
|
||||
];
|
||||
|
||||
# Common attribute for boot loaders so only one of them can be
|
||||
# set at once.
|
||||
system = {
|
||||
boot.loader.id = "refind";
|
||||
build.installBootLoader = pkgs.replaceVarsWith {
|
||||
src = ./refind-install.py;
|
||||
isExecutable = true;
|
||||
replacements = {
|
||||
python3 = pkgs.python3.withPackages (python-packages: [ python-packages.psutil ]);
|
||||
configPath = refindInstallConfig;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -913,7 +913,6 @@ in
|
||||
metabase = runTest ./metabase.nix;
|
||||
mihomo = runTest ./mihomo.nix;
|
||||
mindustry = runTest ./mindustry.nix;
|
||||
minecraft = runTest ./minecraft.nix;
|
||||
minecraft-server = runTest ./minecraft-server.nix;
|
||||
minidlna = runTest ./minidlna.nix;
|
||||
miniflux = runTest ./miniflux.nix;
|
||||
@@ -1291,6 +1290,7 @@ in
|
||||
redis = handleTest ./redis.nix { };
|
||||
redlib = runTest ./redlib.nix;
|
||||
redmine = handleTestOn [ "x86_64-linux" "aarch64-linux" ] ./redmine.nix { };
|
||||
refind = runTest ./refind.nix;
|
||||
renovate = runTest ./renovate.nix;
|
||||
replace-dependencies = handleTest ./replace-dependencies { };
|
||||
reposilite = runTest ./reposilite.nix;
|
||||
|
||||
@@ -1,40 +0,0 @@
|
||||
{ pkgs, lib, ... }:
|
||||
{
|
||||
name = "minecraft";
|
||||
meta = with lib.maintainers; {
|
||||
maintainers = [ nequissimus ];
|
||||
};
|
||||
|
||||
nodes.client =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
user = nodes.client.config.users.users.alice;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
./common/user-account.nix
|
||||
./common/x11.nix
|
||||
];
|
||||
|
||||
environment.systemPackages = [ pkgs.minecraft ];
|
||||
|
||||
nixpkgs.config.allowUnfree = true;
|
||||
|
||||
test-support.displayManager.auto.user = user.name;
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
let
|
||||
user = nodes.client.config.users.users.alice;
|
||||
in
|
||||
''
|
||||
client.wait_for_x()
|
||||
client.execute("su - alice -c minecraft-launcher >&2 &")
|
||||
client.wait_for_text("Create a new Microsoft account")
|
||||
client.sleep(10)
|
||||
client.screenshot("launcher")
|
||||
'';
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
{ lib, pkgs, ... }:
|
||||
{
|
||||
name = "refind";
|
||||
meta = {
|
||||
inherit (pkgs.refind.meta) maintainers;
|
||||
};
|
||||
|
||||
nodes.machine =
|
||||
{ ... }:
|
||||
{
|
||||
virtualisation.useBootLoader = true;
|
||||
virtualisation.useEFIBoot = true;
|
||||
|
||||
boot.loader.grub.enable = false;
|
||||
boot.loader.efi.canTouchEfiVariables = true;
|
||||
boot.loader.refind.enable = true;
|
||||
boot.loader.timeout = 1;
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.start()
|
||||
with subtest('Machine boots correctly'):
|
||||
machine.wait_for_unit('multi-user.target')
|
||||
'';
|
||||
}
|
||||
@@ -1,40 +1,53 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
callPackage,
|
||||
runCommand,
|
||||
makeWrapper,
|
||||
coq,
|
||||
imagemagick,
|
||||
python3,
|
||||
python312,
|
||||
}:
|
||||
|
||||
# Jupyter console:
|
||||
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel coq-kernel.definition'
|
||||
|
||||
# Jupyter console with packages:
|
||||
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel (coq-kernel.definitionWithPackages [coqPackages.bignums])'
|
||||
# Jupyter console with packages: (using Coq 8.20, before the Rocq transition at version 9.0)
|
||||
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel ((coq-kernel.override { coq = coq_8_20; }).definitionWithPackages (with coqPackages_8_20; [bignums stdlib]))'
|
||||
|
||||
# Jupyter notebook:
|
||||
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter.override { definitions.coq = coq-kernel.definition; }'
|
||||
|
||||
let
|
||||
python = python3.withPackages (ps: [
|
||||
# Nixpkgs master is currently on python3 >= python313. This doesn't work with
|
||||
# this package, because it depends on the "future" package, which is no longer
|
||||
# compatible with Python 3.13.
|
||||
|
||||
coq-jupyter = callPackage ./kernel.nix {
|
||||
inherit coq;
|
||||
python3 = python312;
|
||||
};
|
||||
|
||||
python = python312.withPackages (ps: [
|
||||
ps.traitlets
|
||||
ps.jupyter-core
|
||||
ps.ipykernel
|
||||
(callPackage ./kernel.nix { })
|
||||
coq-jupyter
|
||||
]);
|
||||
|
||||
logos = runCommand "coq-logos" { buildInputs = [ imagemagick ]; } ''
|
||||
mkdir -p $out
|
||||
convert ${coq.src}/ide/coqide/coq.png -resize 32x32 $out/logo-32x32.png
|
||||
convert ${coq.src}/ide/coqide/coq.png -resize 64x64 $out/logo-64x64.png
|
||||
'';
|
||||
# At version 9.0, Coq underwent a name change to Rocq.
|
||||
# A couple paths and environment variables need to change at this point.
|
||||
isRocq = lib.versionAtLeast coq.coq-version "9.0";
|
||||
|
||||
in
|
||||
logos =
|
||||
let
|
||||
dir = if isRocq then "rocqide" else "coqide";
|
||||
in
|
||||
runCommand "coq-logos" { buildInputs = [ imagemagick ]; } ''
|
||||
mkdir -p $out
|
||||
convert ${coq.src}/ide/${dir}/coq.png -resize 32x32 $out/logo-32x32.png
|
||||
convert ${coq.src}/ide/${dir}/coq.png -resize 64x64 $out/logo-64x64.png
|
||||
'';
|
||||
|
||||
rec {
|
||||
launcher =
|
||||
runCommand "coq-kernel-launcher"
|
||||
{
|
||||
@@ -48,10 +61,8 @@ rec {
|
||||
--suffix PATH : ${coq}/bin
|
||||
'';
|
||||
|
||||
definition = definitionWithPackages [ ];
|
||||
|
||||
definitionWithPackages = packages: {
|
||||
displayName = "Coq " + coq.version;
|
||||
displayName = (if isRocq then "Rocq " else "Coq ") + coq.version;
|
||||
argv = [
|
||||
"${launcher}/bin/coq-kernel"
|
||||
"-f"
|
||||
@@ -60,10 +71,27 @@ rec {
|
||||
language = "coq";
|
||||
logo32 = "${logos}/logo-32x32.png";
|
||||
logo64 = "${logos}/logo-64x64.png";
|
||||
env = {
|
||||
COQPATH = lib.concatStringsSep ":" (
|
||||
map (x: "${x}/lib/coq/${coq.coq-version}/user-contrib/") packages
|
||||
);
|
||||
};
|
||||
env = lib.listToAttrs [
|
||||
{
|
||||
name = if isRocq then "ROCQPATH" else "COQPATH";
|
||||
value = lib.concatStringsSep ":" (
|
||||
map (x: "${x}/lib/coq/${coq.coq-version}/user-contrib/") packages
|
||||
);
|
||||
}
|
||||
{
|
||||
name = "OCAMLPATH";
|
||||
value = lib.concatStringsSep ":" (
|
||||
map (x: "${x}/lib/ocaml/${coq.ocaml.version}/site-lib/") ([ coq.ocamlPackages.findlib ] ++ packages)
|
||||
);
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
in
|
||||
|
||||
launcher.overrideAttrs (_oldAttrs: {
|
||||
passthru = {
|
||||
inherit coq-jupyter definitionWithPackages logos;
|
||||
definition = definitionWithPackages [ ];
|
||||
};
|
||||
})
|
||||
|
||||
@@ -11998,6 +11998,19 @@ final: prev: {
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
oklch-color-picker-nvim = buildVimPlugin {
|
||||
pname = "oklch-color-picker.nvim";
|
||||
version = "2025-09-04";
|
||||
src = fetchFromGitHub {
|
||||
owner = "eero-lehtinen";
|
||||
repo = "oklch-color-picker.nvim";
|
||||
rev = "ae318113cd7d0e4988b6b059327c2778911f1187";
|
||||
sha256 = "0xhraf89b1ppijqmg1gnwp4gvnnmf8h86n8d6s8ydgj910jvagzm";
|
||||
};
|
||||
meta.homepage = "https://github.com/eero-lehtinen/oklch-color-picker.nvim/";
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
ollama-nvim = buildVimPlugin {
|
||||
pname = "ollama.nvim";
|
||||
version = "2024-06-09";
|
||||
|
||||
@@ -921,6 +921,7 @@ https://github.com/nvimdev/oceanic-material/,,
|
||||
https://github.com/mhartington/oceanic-next/,,
|
||||
https://github.com/pwntester/octo.nvim/,,
|
||||
https://github.com/refractalize/oil-git-status.nvim/,HEAD,
|
||||
https://github.com/eero-lehtinen/oklch-color-picker.nvim/,HEAD,
|
||||
https://github.com/nomnivore/ollama.nvim/,HEAD,
|
||||
https://github.com/yonlu/omni.vim/,,
|
||||
https://github.com/Hoffs/omnisharp-extended-lsp.nvim/,HEAD,
|
||||
|
||||
@@ -495,8 +495,8 @@ let
|
||||
mktplcRef = {
|
||||
publisher = "banacorn";
|
||||
name = "agda-mode";
|
||||
version = "0.6.5";
|
||||
hash = "sha256-fq3JiqdtYN9kAWDvu8X+2mlU5kj2RwUTPA4QF43vShQ=";
|
||||
version = "0.6.6";
|
||||
hash = "sha256-QzFahhNXwfJQibmoAbBDes+/ZCb83oTAN2w96U5Mf8Y=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/banacorn.agda-mode/changelog";
|
||||
@@ -1152,8 +1152,8 @@ let
|
||||
mktplcRef = {
|
||||
publisher = "DanielSanMedium";
|
||||
name = "dscodegpt";
|
||||
version = "3.14.19";
|
||||
hash = "sha256-58D9ZzNIMrVa0nQjev0dGNth29iWL7U/X0NkVLSB7hg=";
|
||||
version = "3.14.85";
|
||||
hash = "sha256-JeoLWQLYxWdkOmlxrMIhroyfZSL1aWg/rXQORiRQueI=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/DanielSanMedium.dscodegpt/changelog";
|
||||
@@ -1747,8 +1747,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "foam-vscode";
|
||||
publisher = "foam";
|
||||
version = "0.27.2";
|
||||
hash = "sha256-wuguBoIYTdlu03wNu9sfRnUkBvYgZEcTJiujq7KWZZ4=";
|
||||
version = "0.27.5";
|
||||
hash = "sha256-QjZlG94bRwrrZhJPUmcyPfyEj8Qd4ZTCCUQ6+CkG9XY=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/foam.foam-vscode/changelog";
|
||||
@@ -2498,8 +2498,8 @@ let
|
||||
mktplcRef = {
|
||||
publisher = "jeff-hykin";
|
||||
name = "better-nix-syntax";
|
||||
version = "2.2.0";
|
||||
hash = "sha256-MmmRKq/7uTCywnEceKukJW/jIc0oIx0GIz55ugh4gQg=";
|
||||
version = "2.2.3";
|
||||
hash = "sha256-KhmkCMBWagi0JjZvupgaU7LA6hsGRE6SiHqdJlXyyX8=";
|
||||
};
|
||||
meta = {
|
||||
description = "Visual Studio Code extension providing Nix Syntax highlighting";
|
||||
@@ -4823,8 +4823,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "uiua-vscode";
|
||||
publisher = "uiua-lang";
|
||||
version = "0.0.65";
|
||||
hash = "sha256-qmjXKuNVYkzaJUUvW/apXzPVE3XuZjxTl3EYNoKHVNc=";
|
||||
version = "0.0.66";
|
||||
hash = "sha256-eFdRzkoYJeQdpebKcSFhhnZZXFcA3oKURvqjBx5hReQ=";
|
||||
};
|
||||
meta = {
|
||||
description = "VSCode language extension for Uiua";
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "pcsx2";
|
||||
version = "0-unstable-2025-08-07";
|
||||
version = "0-unstable-2025-08-30";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "ps2";
|
||||
rev = "c26b06ac2752a11ee47abc6f9c73595ee874341c";
|
||||
hash = "sha256-c7y1jCRQd/o4RTrOeqltcH8HOwrb+BLtaw//0ZWW4E0=";
|
||||
rev = "b0e6c4d7f4abc8cfbf2c55322fc5009a685bc042";
|
||||
hash = "sha256-6cpVsituAWX6sVP5JUvT7KjYZ7SzvD95EB90e2UxJ9A=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -33,13 +33,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "organicmaps";
|
||||
version = "2025.08.10-20";
|
||||
version = "2025.09.01-6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "organicmaps";
|
||||
repo = "organicmaps";
|
||||
tag = "${finalAttrs.version}-android";
|
||||
hash = "sha256-W1lqmxV5rUC6yXdqr9NrRDXON32K3JsalXFDiB5OCg4=";
|
||||
hash = "sha256-wxJgfvZvksW/U3ZC7/apRHQTcGvfdi8mYTPCzT8FM3U=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -10,11 +10,11 @@
|
||||
buildMozillaMach rec {
|
||||
pname = "firefox-beta";
|
||||
binaryName = pname;
|
||||
version = "143.0b7";
|
||||
version = "143.0b8";
|
||||
applicationName = "Firefox Beta";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/firefox/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "bf71930c7a5ab2c4ccc4f0179702491bd314763c469501f68df6cef0f1db57da6f16da77bc5d7692c0f5edf8ce616d8f927d2fa59c5c386217b9022a8e9802f8";
|
||||
sha512 = "bf8e78abcc1cf6c8b48a591d0185c85195a818de0d13bafa3f004ad9c76364a2c07cacdf09fe0ae2e290d9cbce7b8c3ba4b57793cd3d39240023ef53eea08377";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
buildMozillaMach rec {
|
||||
pname = "firefox-devedition";
|
||||
binaryName = pname;
|
||||
version = "143.0b7";
|
||||
version = "143.0b8";
|
||||
applicationName = "Firefox Developer Edition";
|
||||
requireSigning = false;
|
||||
branding = "browser/branding/aurora";
|
||||
src = fetchurl {
|
||||
url = "mirror://mozilla/devedition/releases/${version}/source/firefox-${version}.source.tar.xz";
|
||||
sha512 = "0c1c3af3412b14425df005b53af00e8af526cb6e0bc36f32f6bce1f4332959f35ffed4b795a40e004a41fea9747a7b7c7f6cacfd70b6ef4f54b47556cdc31ec5";
|
||||
sha512 = "89152a4dd3e17f68d7991fae65a6365a2273fcbef28c245a76e9e068a1f12c486a7d0c6d3cb8988c1c9955b15809fa93e117e25b04f9b1a9d449e685cbf30cfc";
|
||||
};
|
||||
|
||||
# buildMozillaMach sets MOZ_APP_REMOTINGNAME during configuration, but
|
||||
|
||||
@@ -15,16 +15,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "airgorah";
|
||||
version = "0.7.3";
|
||||
version = "0.7.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "martin-olivier";
|
||||
repo = "airgorah";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-cIb40TKkk3gfy4dTP8WyZqQkRGj5nItaQ3NSfexCUOA=";
|
||||
hash = "sha256-6TH+DRDtWajZjHNmFSKL4XJK+AuDNUbWKRPRryOpSGY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-3Les/A9fBBjU6NSVVEyXCbjrNSdaEgCl5pZ36ceRDQg=";
|
||||
cargoHash = "sha256-LiSaNyqsKBZ5nNP7mws1pjhVwTXNBF6e1wSUdG/qYog=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
||||
@@ -2,31 +2,24 @@
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
libpostalWithData,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "amass";
|
||||
version = "4.2.0";
|
||||
version = "5.0.1";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ libpostalWithData ];
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "OWASP";
|
||||
repo = "Amass";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-lhvU2fUnjQ+D+EZDRircNg/np4Ynk+HzOBgxT1L8BaQ=";
|
||||
hash = "sha256-uAuBWzEwppnmYacfPI7MZUW+7PdSs3EqYm1WQI4fthQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-PdFIWK4yBh8Bb9mzYdU2h7pDPK8FZMhu8meTd9snP48=";
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"wordlists"
|
||||
];
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p $wordlists
|
||||
cp -R examples/wordlists/*.txt $wordlists
|
||||
gzip $wordlists/*.txt
|
||||
'';
|
||||
vendorHash = "sha256-/AowoZfOk2tib996oC2hsMnzbe/CVbCBesTWXp6xE6Y=";
|
||||
|
||||
# https://github.com/OWASP/Amass/issues/640
|
||||
doCheck = false;
|
||||
@@ -40,9 +33,6 @@ buildGoModule rec {
|
||||
uses the IP addresses obtained during resolution to discover associated
|
||||
netblocks and ASNs. All the information is then used to build maps of the
|
||||
target networks.
|
||||
|
||||
Amass ships with a set of wordlist (to be used with the amass -w flag)
|
||||
that are found under the wordlists output.
|
||||
'';
|
||||
homepage = "https://owasp.org/www-project-amass/";
|
||||
changelog = "https://github.com/OWASP/Amass/releases/tag/v${version}";
|
||||
|
||||
+16
-14
@@ -1,40 +1,42 @@
|
||||
{
|
||||
lib,
|
||||
mkDerivation,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
csxcad,
|
||||
qcsxcad,
|
||||
hdf5,
|
||||
vtkWithQt5,
|
||||
qtbase,
|
||||
vtkWithQt6,
|
||||
qt6,
|
||||
fparser,
|
||||
tinyxml,
|
||||
cgal,
|
||||
boost,
|
||||
}:
|
||||
|
||||
mkDerivation {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "appcsxcad";
|
||||
version = "unstable-2023-01-06";
|
||||
version = "0.2.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "thliebig";
|
||||
repo = "AppCSXCAD";
|
||||
rev = "379ede4b8e00c11e8d0fb724c35547991b30c423";
|
||||
hash = "sha256-L0ZEyovnfMzM7JuITBuhb4tJ2Aqgw52IiKEfEGq7Yo0=";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-KrsnCnRZRTbkgEH3hOETrYhseg5mCHPqhAbYyHlS3sk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
qt6.wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
csxcad
|
||||
qcsxcad
|
||||
hdf5
|
||||
vtkWithQt5
|
||||
qtbase
|
||||
vtkWithQt6
|
||||
qt6.qtbase
|
||||
qt6.qtwayland
|
||||
fparser
|
||||
tinyxml
|
||||
cgal
|
||||
@@ -45,12 +47,12 @@ mkDerivation {
|
||||
rm $out/bin/AppCSXCAD.sh
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Minimal Application using the QCSXCAD library";
|
||||
mainProgram = "AppCSXCAD";
|
||||
homepage = "https://github.com/thliebig/AppCSXCAD";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ matthuszagh ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ matthuszagh ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
})
|
||||
@@ -14,6 +14,8 @@
|
||||
apis ? [ "*" ],
|
||||
# Whether to enable AWS' custom memory management.
|
||||
customMemoryManagement ? true,
|
||||
# Builds in 2+h with 2 cores, and ~10m with a big-parallel builder.
|
||||
requiredSystemFeatures ? [ "big-parallel" ],
|
||||
}:
|
||||
|
||||
let
|
||||
@@ -116,8 +118,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
__darwinAllowLocalNetworking = true;
|
||||
|
||||
# Builds in 2+h with 2 cores, and ~10m with a big-parallel builder.
|
||||
requiredSystemFeatures = [ "big-parallel" ];
|
||||
inherit requiredSystemFeatures;
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
|
||||
+3
-3
@@ -369,7 +369,7 @@ stdenv.mkDerivation rec {
|
||||
# On Darwin, the last argument to gcc is coming up as an empty string. i.e: ''
|
||||
# This is breaking the build of any C target. This patch removes the last
|
||||
# argument if it's found to be an empty string.
|
||||
../trim-last-argument-to-gcc-if-empty.patch
|
||||
./trim-last-argument-to-gcc-if-empty.patch
|
||||
|
||||
# --experimental_strict_action_env (which may one day become the default
|
||||
# see bazelbuild/bazel#2574) hardcodes the default
|
||||
@@ -377,13 +377,13 @@ stdenv.mkDerivation rec {
|
||||
# This is non hermetic on non-nixos systems. On NixOS, bazel cannot find the required binaries.
|
||||
# So we are replacing this bazel paths by defaultShellPath,
|
||||
# improving hermeticity and making it work in nixos.
|
||||
(replaceVars ../strict_action_env.patch {
|
||||
(replaceVars ./strict_action_env.patch {
|
||||
strictActionEnvPatch = defaultShellPath;
|
||||
})
|
||||
|
||||
# bazel reads its system bazelrc in /etc
|
||||
# override this path to a builtin one
|
||||
(replaceVars ../bazel_rc.patch {
|
||||
(replaceVars ./bazel_rc.patch {
|
||||
bazelSystemBazelRCPath = bazelRC;
|
||||
})
|
||||
]
|
||||
@@ -3,10 +3,19 @@
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
autoreconfHook,
|
||||
# doc: https://github.com/ivmai/bdwgc/blob/v8.2.8/doc/README.macros (LARGE_CONFIG)
|
||||
# doc: https://github.com/bdwgc/bdwgc/blob/v8.2.8/doc/README.macros (LARGE_CONFIG)
|
||||
enableLargeConfig ? false,
|
||||
enableMmap ? true,
|
||||
enableStatic ? false,
|
||||
# Allows derivation users to increase the initial mark stack size to avoid stack overflows,
|
||||
# since these inhibit parallel marking (see `GC_mark_some()` in `mark.c`.)
|
||||
#
|
||||
# Run Nix with the `GC_PRINT_STATS=1` environment set to check if the mark stack is too small.
|
||||
# Look for messages such as `Mark stack overflow`, `No room to copy back mark stack`, and
|
||||
# `Grew mark stack to ... frames`.
|
||||
#
|
||||
# If this parameter is set to `null`, the default from upstream is used, which is 4096 as of 8.2.8
|
||||
initialMarkStackSize ? null,
|
||||
nixVersions,
|
||||
}:
|
||||
|
||||
@@ -15,7 +24,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
version = "8.2.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ivmai";
|
||||
owner = "bdwgc";
|
||||
repo = "bdwgc";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-UQSLK/05uPal6/m+HMz0QwXVII1leonlmtSZsXjJ+/c=";
|
||||
@@ -40,18 +49,32 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
++ lib.optional enableMmap "--enable-mmap"
|
||||
++ lib.optional enableLargeConfig "--enable-large-config";
|
||||
|
||||
# This stanza can be dropped when a release fixes this issue:
|
||||
# https://github.com/ivmai/bdwgc/issues/376
|
||||
# The version is checked with == instead of versionAtLeast so we
|
||||
# don't forget to disable the fix (and if the next release does
|
||||
# not fix the problem the test failure will be a reminder to
|
||||
# extend the set of versions requiring the workaround).
|
||||
makeFlags = lib.optionals (stdenv.hostPlatform.isPower64 && finalAttrs.version == "8.2.8") [
|
||||
# do not use /proc primitives to track dirty bits; see:
|
||||
# https://github.com/ivmai/bdwgc/issues/479#issuecomment-1279687537
|
||||
# https://github.com/ivmai/bdwgc/blob/54522af853de28f45195044dadfd795c4e5942aa/include/private/gcconfig.h#L741
|
||||
"CFLAGS_EXTRA=-DNO_SOFT_VDB"
|
||||
];
|
||||
makeFlags =
|
||||
let
|
||||
defineFlag = flag: "-D${flag}";
|
||||
|
||||
# This stanza can be dropped when a release fixes this issue:
|
||||
# https://github.com/bdwgc/bdwgc/issues/376
|
||||
# The version is checked with == instead of versionAtLeast so we
|
||||
# don't forget to disable the fix (and if the next release does
|
||||
# not fix the problem the test failure will be a reminder to
|
||||
# extend the set of versions requiring the workaround).
|
||||
noSoftVDB = lib.optional (stdenv.hostPlatform.isPower64 && finalAttrs.version == "8.2.8") (
|
||||
# do not use /proc primitives to track dirty bits; see:
|
||||
# https://github.com/bdwgc/bdwgc/issues/479#issuecomment-1279687537
|
||||
# https://github.com/bdwgc/bdwgc/blob/54522af853de28f45195044dadfd795c4e5942aa/include/private/gcconfig.h#L741
|
||||
"NO_SOFT_VDB"
|
||||
);
|
||||
|
||||
initialMarkStackSizeFlag = lib.optionals (initialMarkStackSize != null) [
|
||||
"INITIAL_MARK_STACK_SIZE=${toString initialMarkStackSize}"
|
||||
];
|
||||
|
||||
cflagsExtra = noSoftVDB ++ initialMarkStackSizeFlag;
|
||||
in
|
||||
lib.optionals (cflagsExtra != [ ]) [
|
||||
"CFLAGS_EXTRA=${lib.concatMapStringsSep " " defineFlag cflagsExtra}"
|
||||
];
|
||||
|
||||
# OpenBSD patches lld (!!!!) to inject this symbol into every linker invocation.
|
||||
# We are obviously not doing that.
|
||||
@@ -91,7 +114,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
Alternatively, the garbage collector may be used as a leak detector for
|
||||
C or C++ programs, though that is not its primary goal.
|
||||
'';
|
||||
changelog = "https://github.com/ivmai/bdwgc/blob/v${finalAttrs.version}/ChangeLog";
|
||||
changelog = "https://github.com/bdwgc/bdwgc/blob/v${finalAttrs.version}/ChangeLog";
|
||||
license = "https://hboehm.info/gc/license.txt"; # non-copyleft, X11-style license
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
platforms = lib.platforms.all;
|
||||
|
||||
@@ -75,13 +75,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "cinnamon";
|
||||
version = "6.4.10";
|
||||
version = "6.4.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "linuxmint";
|
||||
repo = "cinnamon";
|
||||
rev = version;
|
||||
hash = "sha256-8yg39x5rWxJ2IcDFO4AjqrctPSjqdUSfmrKbjT3Yx+0=";
|
||||
hash = "sha256-Hqjsi07qkVGobVwiXgLwZexjssQN0UN1BJo8b8JlpkY=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -18,18 +18,18 @@
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "cinny-desktop";
|
||||
# We have to be using the same version as cinny-web or this isn't going to work.
|
||||
version = "4.9.0";
|
||||
version = "4.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cinnyapp";
|
||||
repo = "cinny-desktop";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-C4wAl9H0ZCsUk5hJk8u0Om70UqX4D9/iWDYOgalksu8=";
|
||||
hash = "sha256-YEu1qTI2ExfS+WKFxNGkubr+HOCCuWGpZFk3hS3srCU=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/src-tauri";
|
||||
|
||||
cargoHash = "sha256-XQLp5copZLClscPv9Eb3ceOw0WGlNHwIH69MdFih84w=";
|
||||
cargoHash = "sha256-NksWHI2TJR0YMGRIDHBxrQPGHiir2Kn4bxnSvO7EzoA=";
|
||||
|
||||
postPatch =
|
||||
let
|
||||
|
||||
@@ -13,16 +13,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "cinny-unwrapped";
|
||||
version = "4.9.0";
|
||||
version = "4.10.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cinnyapp";
|
||||
repo = "cinny";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-tvBaONJwfkCK77aHmWJ/UAAZHq2WIc7geNT2tEFKuZ0=";
|
||||
hash = "sha256-KpN6ul+kzGarBKnXXSP3gf9KlRII869xnfT95mzacRc=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-9faffTlXEI1lMrVrkSyso/tfjs/4W+TVzmiv+bZAv18=";
|
||||
npmDepsHash = "sha256-N5xHu4AmgRdd3gM+YTu+fbtAw1YDp4SMXdXUbbJnIZc=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
python3
|
||||
|
||||
@@ -90,29 +90,33 @@ llvmPackages_19.stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
dontCargoSetupPostUnpack = true;
|
||||
|
||||
# Should not be necessary after 25.9
|
||||
patches = lib.optional (lib.versions.majorMinor version == "25.8") (fetchpatch {
|
||||
url = "https://github.com/ClickHouse/ClickHouse/commit/67a42b78cdf1c793e78c1adbcc34162f67044032.patch";
|
||||
sha256 = "7VF+JSztqTWD+aunCS3UVNxlRdwHc2W5fNqzDyeo3Fc=";
|
||||
});
|
||||
patches =
|
||||
lib.optional (lib.versions.majorMinor version == "25.8") (fetchpatch {
|
||||
# Disable building WASM lexer
|
||||
url = "https://github.com/ClickHouse/ClickHouse/commit/67a42b78cdf1c793e78c1adbcc34162f67044032.patch";
|
||||
sha256 = "7VF+JSztqTWD+aunCS3UVNxlRdwHc2W5fNqzDyeo3Fc=";
|
||||
})
|
||||
++
|
||||
|
||||
lib.optional (lib.versions.majorMinor version == "25.8" && stdenv.hostPlatform.isDarwin)
|
||||
(fetchpatch {
|
||||
# Do not intercept memalign on darwin
|
||||
url = "https://github.com/ClickHouse/ClickHouse/commit/0cfd2dbe981727fb650f3b9935f5e7e7e843180f.patch";
|
||||
sha256 = "1iNYZbugX2g2dxNR1ZiUthzPnhLUR8g118aG23yhgUo=";
|
||||
});
|
||||
|
||||
postPatch = ''
|
||||
patchShebangs src/ utils/
|
||||
|
||||
sed -i 's|/usr/bin/env perl|"${lib.getExe perl}"|' contrib/openssl-cmake/CMakeLists.txt
|
||||
|
||||
substituteInPlace utils/list-licenses/list-licenses.sh \
|
||||
--replace-fail '$(git rev-parse --show-toplevel)' "$NIX_BUILD_TOP/$sourceRoot"
|
||||
''
|
||||
+ lib.optionalString (lib.versions.majorMinor version <= "25.6") ''
|
||||
substituteInPlace src/Storages/System/StorageSystemLicenses.sh \
|
||||
--replace-fail '$(git rev-parse --show-toplevel)' "$NIX_BUILD_TOP/$sourceRoot"
|
||||
''
|
||||
+ lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
substituteInPlace cmake/tools.cmake \
|
||||
--replace-fail 'gfind' 'find' \
|
||||
--replace-fail 'ggrep' 'grep' \
|
||||
--replace-fail '--ld-path=''${LLD_PATH}' '-fuse-ld=lld'
|
||||
|
||||
substituteInPlace utils/list-licenses/list-licenses.sh \
|
||||
--replace-fail 'gfind' 'find' \
|
||||
--replace-fail 'ggrep' 'grep'
|
||||
''
|
||||
# Rust is handled by cmake
|
||||
+ lib.optionalString rustSupport ''
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cloudprober";
|
||||
version = "0.14.0";
|
||||
version = "0.14.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloudprober";
|
||||
repo = "cloudprober";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-t32mALyxtapPSzf/pNG0MGS2jjq0Dwm31qQZAlZI5zE=";
|
||||
hash = "sha256-XFMjUwsRfWAnrNsegUPqWz8Bcc/naEBhytqq/o21ras=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-u/glcoLlNXDEWFblnuvRHK9mUNCXTsfcWR+FDsJeOOA=";
|
||||
vendorHash = "sha256-+EVcYFnWPSNfxUzxuL3tAHjCCDad/7K11y3dk2CUtrU=";
|
||||
|
||||
checkFlags =
|
||||
let
|
||||
|
||||
@@ -12,18 +12,18 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "codex";
|
||||
version = "0.29.0";
|
||||
version = "0.30.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openai";
|
||||
repo = "codex";
|
||||
tag = "rust-v${finalAttrs.version}";
|
||||
hash = "sha256-YCQfycmDPRxMAqo57tt/6IXkUn1JIPTzEHMNbt7m3w0=";
|
||||
hash = "sha256-9dWVf5Q7sDfAbRIGvUqqwEouJRnS//ujlFvqZ/a8zBk=";
|
||||
};
|
||||
|
||||
sourceRoot = "${finalAttrs.src.name}/codex-rs";
|
||||
|
||||
cargoHash = "sha256-kGjpqkV0OJW8mOW/OhyfXoTgLHHrtHQcw9c8zyVtzgs=";
|
||||
cargoHash = "sha256-qJn2oN/9LVLhHnaNp+x9cUEMODrGrgV3SiR0ykIx7B4=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
||||
@@ -19,18 +19,18 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "devcontainer";
|
||||
version = "0.80.0";
|
||||
version = "0.80.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "devcontainers";
|
||||
repo = "cli";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-p6iBDNTGYgOPQUTRbiu8IT7kN72OCrw7R0ouhWW9yok=";
|
||||
hash = "sha256-riDe8j/DCSuXpuFi27tmT5KjruuJiCrUeP022V4sYjU=";
|
||||
};
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
yarnLock = "${finalAttrs.src}/yarn.lock";
|
||||
hash = "sha256-LqrNRBMAWUqJH0+a17dIJgpKFP2rlECnWi4eVFfUTFg=";
|
||||
hash = "sha256-joctNMzQXC/A9A69sJkKbED9pqMcbK1ZYiHPdJBJKCE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,18 +6,18 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "emmylua_doc_cli";
|
||||
version = "0.12.0";
|
||||
version = "0.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "EmmyLuaLs";
|
||||
repo = "emmylua-analyzer-rust";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-IXoiXfRnGOZQ7c8AJaK8OGjqp1bczd/tKjtpbYdCZlU=";
|
||||
hash = "sha256-93PlsVvlUravsnW7YBCii04jCEJPP+6U2vYbVBjcX8M=";
|
||||
};
|
||||
|
||||
buildAndTestSubdir = "crates/emmylua_doc_cli";
|
||||
|
||||
cargoHash = "sha256-7QQipbnqelLdzQr+lIORyQNM9SS5yHaJLQ31M52lYCw=";
|
||||
cargoHash = "sha256-SbsYlIVWDpBU2bxJqXUtOiMHkOoa8Up27X7rVKLLLm0=";
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
diff --git a/src/raster_to_epson.c b/src/raster_to_epson.c
|
||||
index 6e621c8..a5ca797 100644
|
||||
--- a/src/raster_to_epson.c
|
||||
+++ b/src/raster_to_epson.c
|
||||
@@ -438,14 +438,14 @@ static int print_page (void)
|
||||
break;
|
||||
}
|
||||
|
||||
- if (eps_raster_print(raster_h, image_raw, pageRegion.bytesPerLine, pageRegion.width, &nraster)) {
|
||||
+ if (eps_raster_print(raster_h, image_raw, pageRegion.bytesPerLine, pageRegion.width, (int *) &nraster)) {
|
||||
error = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// flushing page
|
||||
- eps_raster_print(raster_h, NULL, 0, 0, &nraster);
|
||||
+ eps_raster_print(raster_h, NULL, 0, 0, (int *) &nraster);
|
||||
|
||||
bAbort = (error) ? TRUE : FALSE;
|
||||
if (epcgEndPage (bAbort)) {
|
||||
@@ -0,0 +1,23 @@
|
||||
diff --git a/src/pagemanager/pagemanager.c b/src/pagemanager/pagemanager.c
|
||||
index 029e6d3..2881585 100644
|
||||
--- a/src/pagemanager/pagemanager.c
|
||||
+++ b/src/pagemanager/pagemanager.c
|
||||
@@ -23,6 +23,7 @@
|
||||
#include "debuglog.h"
|
||||
#include "memory.h"
|
||||
#include "raster.h"
|
||||
+#include "raster-helper.h"
|
||||
#include "pagemanager.h"
|
||||
|
||||
extern int JobCanceled;
|
||||
diff --git a/src/raster_to_epson.c b/src/raster_to_epson.c
|
||||
index 6e621c8..6eea77c 100644
|
||||
--- a/src/raster_to_epson.c
|
||||
+++ b/src/raster_to_epson.c
|
||||
@@ -36,6 +36,7 @@
|
||||
#include "raster.h"
|
||||
#include "memory.h"
|
||||
#include "raster_to_epson.h"
|
||||
+#include "raster-helper.h"
|
||||
#include "pagemanager.h"
|
||||
#include "filter_option.h"
|
||||
@@ -0,0 +1,131 @@
|
||||
{
|
||||
autoreconfHook,
|
||||
cups,
|
||||
libjpeg,
|
||||
rpmextract,
|
||||
fetchurl,
|
||||
lib,
|
||||
stdenv,
|
||||
}:
|
||||
|
||||
let
|
||||
srcdirs = {
|
||||
filter = "epson-inkjet-printer-filter-1.0.0";
|
||||
driver = "epson-inkjet-printer-workforce-840-series-1.0.0";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "epson-inkjet-printer-workforce-840-series";
|
||||
version = "1.0.0";
|
||||
|
||||
# The Epson may be unreliable, and it has been since sometime in
|
||||
# 2024. Non-browser requests using commands like fetchurl receive a
|
||||
# 403 error, an access denied response -- last checked on
|
||||
# 2025-08-21.
|
||||
#
|
||||
# Therefore, an archive.org link has been added as a fallback
|
||||
# option just in case.
|
||||
src = fetchurl {
|
||||
# NOTE: Don't forget to update the webarchive link too!
|
||||
urls = [
|
||||
"https://download.ebz.epson.net/dsc/op/stable/SRPMS/epson-inkjet-printer-workforce-840-series-${finalAttrs.version}-1lsb3.2.src.rpm"
|
||||
"https://web.archive.org/web/https://download.ebz.epson.net/dsc/op/stable/SRPMS/epson-inkjet-printer-workforce-840-series-${finalAttrs.version}-1lsb3.2.src.rpm"
|
||||
];
|
||||
hash = "sha256-rTYnEmgzqR/wOZYYIe2rO9x2cX8s2qDyTuRaTjzJjbg=";
|
||||
};
|
||||
sourceRoot = srcdirs.filter;
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
rpmextract
|
||||
];
|
||||
buildInputs = [
|
||||
cups
|
||||
libjpeg
|
||||
];
|
||||
|
||||
unpackPhase = ''
|
||||
runHook preUnpack
|
||||
|
||||
rpmextract "$src"
|
||||
for i in ${lib.concatStringsSep " " (builtins.attrValues srcdirs)}; do
|
||||
tar xvf "$i".tar.gz
|
||||
done
|
||||
|
||||
runHook postUnpack
|
||||
'';
|
||||
|
||||
# Both patches fix errors that occur when building with GCC 14.
|
||||
#
|
||||
# eps_raster_print-cast.patch fixes 'error: passing argument 5 of
|
||||
# ‘eps_raster_print’ from incompatible pointer type' in file
|
||||
# raster_to_epson.c
|
||||
#
|
||||
# include-raster-helper.patch fixes 'error: implicit declaration of
|
||||
# function' in files pagemanager.c and raster_to_epson.c
|
||||
patches = [
|
||||
./eps_raster_print-cast.patch
|
||||
./include-raster-helper.patch
|
||||
];
|
||||
|
||||
installPhase =
|
||||
let
|
||||
filterdir = "$out/lib/cups/filter";
|
||||
docdir = "$out/share/doc/epson-inkjet-printer-workforce-840-series";
|
||||
ppddir = "$out/share/cups/model/epson-inkjet-printer-workforce-840-series";
|
||||
libdir =
|
||||
if stdenv.hostPlatform.isx86_64 then
|
||||
"lib64"
|
||||
else
|
||||
throw "Platforms other than x86_64-linux are not (yet) supported.";
|
||||
in
|
||||
''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p "$out" "${docdir}" "${filterdir}" "${ppddir}"
|
||||
cp src/epson_inkjet_printer_filter "${filterdir}"
|
||||
|
||||
cp AUTHORS COPYING COPYING.EPSON COPYING.LIB "${docdir}"
|
||||
|
||||
cd ../${srcdirs.driver}
|
||||
cp Manual.txt README "${docdir}"
|
||||
for ppd in ppds/*; do
|
||||
substituteInPlace "$ppd" --replace-fail '/opt/epson-inkjet-printer-workforce-840-series/cups/lib' "$out/lib/cups"
|
||||
gzip -c "$ppd" > "${ppddir}/''${ppd#*/}"
|
||||
done
|
||||
cp -r resource watermark ${libdir} "$out"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Proprietary CUPS drivers for Epson inkjet printers";
|
||||
longDescription = ''
|
||||
This software is a filter program used with the Common UNIX Printing
|
||||
System (CUPS) under Linux. It supplies high quality printing with
|
||||
Seiko Epson Color Ink Jet Printers.
|
||||
|
||||
This printer driver is supporting the following printers.
|
||||
|
||||
Epson Stylus Office BX925
|
||||
Epson WorkForce 840
|
||||
|
||||
To use the driver adjust your configuration.nix file:
|
||||
```nix
|
||||
{
|
||||
services.printing = {
|
||||
enable = true;
|
||||
drivers = [ pkgs.epson-inkjet-printer-workforce-840-series ];
|
||||
};
|
||||
}
|
||||
```
|
||||
'';
|
||||
downloadPage = "http://download.ebz.epson.net/dsc/du/02/DriverDownloadInfo.do?LG2=EN&CN2=&DSCMI=16839&DSCCHK=3d7bc6bdfca08006abfb859fb1967183156a7252";
|
||||
license = with lib.licenses; [
|
||||
lgpl21
|
||||
epson
|
||||
];
|
||||
maintainers = with lib.maintainers; [ heichro ];
|
||||
platforms = [ "x86_64-linux" ];
|
||||
};
|
||||
})
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "flarectl";
|
||||
version = "0.115.0";
|
||||
version = "0.116.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloudflare";
|
||||
repo = "cloudflare-go";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-2LdsqCqRTruTHYPwuI9Gm07cpvQNOrZvIl6rjZU+0aU=";
|
||||
hash = "sha256-DibRQmvwe58O1pcelx37fv3WFlWDcEbWeg+sJlxzDMU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-f+bNNwbTj348JJJLST2j7h8/A79qzvGlf8MjldVvtGU=";
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import ./generic.nix {
|
||||
version = "11.0.4";
|
||||
hash = "sha256-RI6eCJx1QTDkzY1oFKwCQyOrRXMd0TFihWofC4ZCv44=";
|
||||
npmDepsHash = "sha256-wsjosyZ5J5mU7ixbWjXnbqkvgnOE0dGz81vVqaI61go=";
|
||||
vendorHash = "sha256-Zfjp6EKiO74wYgvc85AwtDg+3Nf7lEa1ZKQMMcYPM34=";
|
||||
version = "11.0.5";
|
||||
hash = "sha256-r1PR2WfJUvt+5K9RQi+9+xJmhtpqP6cGzEk77DiZUlE=";
|
||||
npmDepsHash = "sha256-1lY08jBTx3DRhoaup02076EL9n85y57WCsS/cNcM4aw=";
|
||||
vendorHash = "sha256-Jh8u+iCBhYdKcLj4IzcKtJBnzvclvUeYbR/hjMN+cPs=";
|
||||
lts = true;
|
||||
nixUpdateExtraArgs = [
|
||||
"--override-filename"
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import ./generic.nix {
|
||||
version = "12.0.2";
|
||||
hash = "sha256-BkyzOrpwKkROKiZgSCr8Z7n8WO6qnkDyCBJ4HWO71Ws=";
|
||||
npmDepsHash = "sha256-kq2AV1D0xA4Csm8XUTU5D0iCmyuajcnwlLdPjJ/mj1g=";
|
||||
vendorHash = "sha256-B9menPCDUOYHPCS0B5KpxuE03FdFXmA8XqkiYEAxs5Y=";
|
||||
version = "12.0.3";
|
||||
hash = "sha256-3uXGDX1uKxXehiMBG1cMIttJFRACIm3UE8U2OtUWjOQ=";
|
||||
npmDepsHash = "sha256-V8FUoL9y36bagkg8Scttv/IzKg+MIIqp7witvT8bSWA=";
|
||||
vendorHash = "sha256-GE3trnaWuAVSEfi11tZo5JXedWOYOMzcHQ3GFyISVTQ=";
|
||||
lts = false;
|
||||
nixUpdateExtraArgs = [
|
||||
"--override-filename"
|
||||
|
||||
@@ -33,10 +33,20 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
cargoHash = "sha256-AdatJNDqIoRHfaf81iFhOs2JGLIxy7agFJj96bFPj00=";
|
||||
|
||||
npmDeps = fetchNpmDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-izCl3pE15ocEGYOYCUR1iTR+82nDB06Ed4YOGRGByfI=";
|
||||
inherit (finalAttrs)
|
||||
pname
|
||||
version
|
||||
src
|
||||
patches
|
||||
;
|
||||
hash = "sha256-ehXGLpCCN+BNqtwjEatcfR0kQHj5WOofTDR5mLSVW0U=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Remove after https://github.com/gulbanana/gg/pull/68 is released
|
||||
./update-tauri-npm-to-match-cargo.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cargo-tauri.hook
|
||||
nodejs
|
||||
|
||||
@@ -0,0 +1,81 @@
|
||||
From 627de4bd148229a1feb327262b9f0b2a75077ed3 Mon Sep 17 00:00:00 2001
|
||||
From: Mitchell Skaggs <skaggsm333@gmail.com>
|
||||
Date: Mon, 1 Sep 2025 19:02:19 -0500
|
||||
Subject: [PATCH] update `@tauri-apps/api` and `@tauri-apps/plugin-shell` to
|
||||
match Cargo versions
|
||||
|
||||
In Tauri *CLI* versions >=2.8.0, the build fails if NPM and Cargo versions
|
||||
are not aligned. This is not a new requirement, this merely verifies an
|
||||
existing requirement. The CLI version in Nixpkgs was updated and now
|
||||
detects this already-existing error.
|
||||
|
||||
This pulls the NPM versions up to match the existing Cargo versions
|
||||
without touching any other dependencies.
|
||||
---
|
||||
package-lock.json | 18 +++++++++---------
|
||||
package.json | 4 ++--
|
||||
2 files changed, 11 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/package-lock.json b/package-lock.json
|
||||
index 3affe19..ebe27e7 100644
|
||||
--- a/package-lock.json
|
||||
+++ b/package-lock.json
|
||||
@@ -9,8 +9,8 @@
|
||||
"version": "0.29.0",
|
||||
"dependencies": {
|
||||
"@catppuccin/palette": "^1.0.3",
|
||||
- "@tauri-apps/api": "^2.0.0-beta.0",
|
||||
- "@tauri-apps/plugin-shell": "^2.0.0-beta.0",
|
||||
+ "@tauri-apps/api": "^2.4.1",
|
||||
+ "@tauri-apps/plugin-shell": "2.2.1",
|
||||
"feather-icons": "^4.29.1",
|
||||
"modern-normalize": "^2.0.0"
|
||||
},
|
||||
@@ -793,9 +793,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@tauri-apps/api": {
|
||||
- "version": "2.1.1",
|
||||
- "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.1.1.tgz",
|
||||
- "integrity": "sha512-fzUfFFKo4lknXGJq8qrCidkUcKcH2UHhfaaCNt4GzgzGaW2iS26uFOg4tS3H4P8D6ZEeUxtiD5z0nwFF0UN30A==",
|
||||
+ "version": "2.4.1",
|
||||
+ "resolved": "https://registry.npmjs.org/@tauri-apps/api/-/api-2.4.1.tgz",
|
||||
+ "integrity": "sha512-5sYwZCSJb6PBGbBL4kt7CnE5HHbBqwH+ovmOW6ZVju3nX4E3JX6tt2kRklFEH7xMOIwR0btRkZktuLhKvyEQYg==",
|
||||
"license": "Apache-2.0 OR MIT",
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
@@ -1002,9 +1002,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@tauri-apps/plugin-shell": {
|
||||
- "version": "2.0.1",
|
||||
- "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-shell/-/plugin-shell-2.0.1.tgz",
|
||||
- "integrity": "sha512-akU1b77sw3qHiynrK0s930y8zKmcdrSD60htjH+mFZqv5WaakZA/XxHR3/sF1nNv9Mgmt/Shls37HwnOr00aSw==",
|
||||
+ "version": "2.2.1",
|
||||
+ "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-shell/-/plugin-shell-2.2.1.tgz",
|
||||
+ "integrity": "sha512-G1GFYyWe/KlCsymuLiNImUgC8zGY0tI0Y3p8JgBCWduR5IEXlIJS+JuG1qtveitwYXlfJrsExt3enhv5l2/yhA==",
|
||||
"license": "MIT OR Apache-2.0",
|
||||
"dependencies": {
|
||||
"@tauri-apps/api": "^2.0.0"
|
||||
@@ -2054,4 +2054,4 @@
|
||||
"license": "ISC"
|
||||
}
|
||||
}
|
||||
-}
|
||||
\ No newline at end of file
|
||||
+}
|
||||
diff --git a/package.json b/package.json
|
||||
index 6000620..9d61871 100644
|
||||
--- a/package.json
|
||||
+++ b/package.json
|
||||
@@ -14,8 +14,8 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@catppuccin/palette": "^1.0.3",
|
||||
- "@tauri-apps/api": "^2.0.0-beta.0",
|
||||
- "@tauri-apps/plugin-shell": "^2.0.0-beta.0",
|
||||
+ "@tauri-apps/api": "^2.4.1",
|
||||
+ "@tauri-apps/plugin-shell": "2.2.1",
|
||||
"feather-icons": "^4.29.1",
|
||||
"modern-normalize": "^2.0.0"
|
||||
},
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildDotnetModule rec {
|
||||
pname = "gh-gei";
|
||||
version = "1.18.0";
|
||||
version = "1.18.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "github";
|
||||
repo = "gh-gei";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-AMmeuobgJ+DSRG4zS7RP5l3/BraqQxXB+ygLDc3XnOs=";
|
||||
hash = "sha256-ZMFom0irZa63Nzx7wViinmN6yRfiHxQFprJdIx1Ak2Y=";
|
||||
};
|
||||
|
||||
dotnet-sdk = dotnetCorePackages.sdk_8_0_4xx;
|
||||
|
||||
@@ -0,0 +1,73 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
python3Packages,
|
||||
installShellFiles,
|
||||
versionCheckHook,
|
||||
}:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "globus-cli";
|
||||
version = "3.36.0";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "globus";
|
||||
repo = "globus-cli";
|
||||
tag = version;
|
||||
hash = "sha256-Phu7nXMICSBFUX8wfzwA4ORBJIkhTDCMCqTyZvcG93c=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [
|
||||
setuptools
|
||||
ruamel-yaml
|
||||
];
|
||||
|
||||
dependencies = with python3Packages; [
|
||||
globus-sdk
|
||||
click
|
||||
jmespath
|
||||
packaging
|
||||
typing-extensions
|
||||
requests
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
nativeCheckInputs = with python3Packages; [
|
||||
pytest
|
||||
pytest-xdist
|
||||
pytest-timeout
|
||||
responses
|
||||
|
||||
click
|
||||
requests
|
||||
pyjwt
|
||||
cryptography
|
||||
packaging
|
||||
typing-extensions
|
||||
|
||||
pytestCheckHook
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
versionCheckProgramArg = "version";
|
||||
|
||||
postInstall = ''
|
||||
mkdir -p completions/{bash,zsh}
|
||||
$out/bin/globus --bash-completer > completions/bash/globus
|
||||
$out/bin/globus --zsh-completer > completions/zsh/_globus
|
||||
installShellCompletion \
|
||||
--bash completions/bash/globus \
|
||||
--zsh completions/zsh/_globus
|
||||
'';
|
||||
|
||||
meta = {
|
||||
mainProgram = "globus";
|
||||
description = "Command-line interface to Globus REST APIs, including the Transfer API and the Globus Auth API";
|
||||
homepage = "https://github.com/globus/globus-cli";
|
||||
changelog = "https://github.com/globus/globus-cli/releases/tag/${src.tag}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = [ lib.maintainers.richardjacton ];
|
||||
};
|
||||
}
|
||||
@@ -6,7 +6,7 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "1.7.49.2";
|
||||
version = "1.7.49.4";
|
||||
in
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "grav";
|
||||
@@ -14,7 +14,7 @@ stdenvNoCC.mkDerivation {
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/getgrav/grav/releases/download/${version}/grav-admin-v${version}.zip";
|
||||
hash = "sha256-Yu7uFoim12pe4OT/dSsQVcZ6nyYGKWLJbsfLFtI05Z8=";
|
||||
hash = "sha256-ZOhZ5O5s8P4nqjSsLEu4RpyTfZ34YBi0itETwcRdIPQ=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -1,54 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
grub2_xen,
|
||||
}:
|
||||
|
||||
let
|
||||
efiSystemsBuild = {
|
||||
i686-linux.target = "i386";
|
||||
x86_64-linux.target = "x86_64";
|
||||
armv7l-linux.target = "arm";
|
||||
aarch64-linux.target = "aarch64";
|
||||
riscv32-linux.target = "riscv32";
|
||||
riscv64-linux.target = "riscv64";
|
||||
};
|
||||
|
||||
in
|
||||
(
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "pvgrub-image";
|
||||
|
||||
configs = ./configs;
|
||||
|
||||
buildInputs = [ grub2_xen ];
|
||||
|
||||
buildCommand = ''
|
||||
cp "${configs}"/* .
|
||||
tar -cf memdisk.tar grub.cfg
|
||||
# We include all modules except all_video.mod as otherwise grub will fail printing "no symbol table"
|
||||
# if we include it.
|
||||
grub-mkimage -O "${
|
||||
efiSystemsBuild.${stdenv.hostPlatform.system}.target
|
||||
}-xen" -c grub-bootstrap.cfg \
|
||||
-m memdisk.tar -o "grub-${efiSystemsBuild.${stdenv.hostPlatform.system}.target}-xen.bin" \
|
||||
$(ls "${grub2_xen}/lib/grub/${
|
||||
efiSystemsBuild.${stdenv.hostPlatform.system}.target
|
||||
}-xen/" |grep 'mod''$'|grep -v '^all_video\.mod''$')
|
||||
mkdir -p "$out/lib/grub-xen"
|
||||
cp "grub-${efiSystemsBuild.${stdenv.hostPlatform.system}.target}-xen.bin" $out/lib/grub-xen/
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "PvGrub image for use for booting PV Xen guests";
|
||||
|
||||
longDescription = ''
|
||||
This package provides a PvGrub image for booting Para-Virtualized (PV)
|
||||
Xen guests
|
||||
'';
|
||||
|
||||
platforms = platforms.gnu ++ platforms.linux;
|
||||
};
|
||||
}
|
||||
)
|
||||
@@ -0,0 +1,83 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
grub2_xen,
|
||||
grub2_xen_pvh,
|
||||
grubPlatform ? "xen_pvh",
|
||||
}:
|
||||
|
||||
assert lib.assertOneOf "grubPlatform" grubPlatform [
|
||||
"xen"
|
||||
"xen_pvh"
|
||||
];
|
||||
let
|
||||
targets = {
|
||||
i686-linux.target = "i386";
|
||||
x86_64-linux.target = if grubPlatform == "xen_pvh" then "i386" else "x86_64";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = "grub2_${grubPlatform}_image";
|
||||
|
||||
env = {
|
||||
GRUB_CONFIGS = "${./configs}";
|
||||
GRUB_FORMAT = "${targets.${stdenv.buildPlatform.system}.target}-${grubPlatform}";
|
||||
};
|
||||
|
||||
buildInputs =
|
||||
lib.optional (grubPlatform == "xen") grub2_xen
|
||||
++ lib.optional (grubPlatform == "xen_pvh") grub2_xen_pvh;
|
||||
|
||||
dontUnpack = true;
|
||||
|
||||
buildPhase = ''
|
||||
cp "$GRUB_CONFIGS"/* .
|
||||
tar -cf memdisk.tar grub.cfg
|
||||
grub-mkimage \
|
||||
-O "$GRUB_FORMAT" \
|
||||
-c grub-bootstrap.cfg \
|
||||
-m memdisk.tar \
|
||||
-o grub-"$GRUB_FORMAT".bin \
|
||||
${if grubPlatform == "xen_pvh" then grub2_xen_pvh else grub2_xen}/lib/grub/"$GRUB_FORMAT"/*.mod
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/lib/grub-${grubPlatform}"
|
||||
cp grub-"$GRUB_FORMAT".bin $out/lib/grub-${grubPlatform}/
|
||||
'';
|
||||
|
||||
dontFixup = true;
|
||||
|
||||
meta = {
|
||||
description = "PvGrub2 image for booting ${
|
||||
if grubPlatform == "xen_pvh" then "PVH" else "PV"
|
||||
} Xen guests";
|
||||
|
||||
longDescription =
|
||||
if (grubPlatform == "xen_pvh") then
|
||||
''
|
||||
This package provides a prebuilt PvGrub2 image for booting PVH Xen
|
||||
guests (also commonly referred to as PvhGrub2), which searches for
|
||||
`grub.cfg` on the guest disk and interprets it to load the kernel,
|
||||
eliminating the need to copy the guest kernel to the Dom0.
|
||||
|
||||
You will need `pkgs.grub2_xen_pvh` to build a customized PvhGrub2
|
||||
image. See [PvGrub2](https://wiki.xenproject.org/wiki/PvGrub2) for
|
||||
more explanations.
|
||||
''
|
||||
else
|
||||
''
|
||||
This package provides a prebuilt PvGrub2 image for booting PV Xen
|
||||
guests, which searches for `grub.cfg` on the guest disk and interprets
|
||||
it to load the kernel, eliminating the need to copy the guest kernel
|
||||
to the Dom0.
|
||||
|
||||
You will need `pkgs.grub2_xen` to build a customized PvGrub2 image.
|
||||
See [PvGrub2](https://wiki.xenproject.org/wiki/PvGrub2) for more
|
||||
explanations.
|
||||
'';
|
||||
|
||||
teams = [ lib.teams.xen ];
|
||||
platforms = lib.attrNames targets;
|
||||
};
|
||||
}
|
||||
@@ -24,6 +24,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
preConfigure = ''
|
||||
substituteInPlace libhidx/cmake_modules/Findasio.cmake --replace-fail '/usr/include/asio' '${lib.getDev asio}/include/asio'
|
||||
substituteInPlace libhidx/libhidx/src/Connector.cc --replace-fail '/usr/local/libexec' "$out/libexec"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
kddockwidgets,
|
||||
kdePackages,
|
||||
libelf,
|
||||
linuxPackages,
|
||||
perf,
|
||||
qt6,
|
||||
rustc-demangle,
|
||||
zstd,
|
||||
@@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
|
||||
qtWrapperArgs = [
|
||||
"--suffix PATH : ${
|
||||
lib.makeBinPath [
|
||||
linuxPackages.perf
|
||||
perf
|
||||
binutils
|
||||
]
|
||||
}"
|
||||
|
||||
@@ -25,6 +25,7 @@
|
||||
pixman,
|
||||
proj,
|
||||
sqlite,
|
||||
xz,
|
||||
zstd,
|
||||
}:
|
||||
|
||||
@@ -70,6 +71,7 @@ stdenv.mkDerivation rec {
|
||||
pixman
|
||||
proj
|
||||
sqlite
|
||||
xz # liblzma
|
||||
zstd
|
||||
];
|
||||
|
||||
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
autoconf,
|
||||
automake,
|
||||
libtool,
|
||||
rustPlatform,
|
||||
}:
|
||||
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "lightway";
|
||||
version = "0-unstable-2025-09-04";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "expressvpn";
|
||||
repo = "lightway";
|
||||
rev = "4eb836158607c83d47226703de5a043519586782";
|
||||
hash = "sha256-sNhTdJTxNxHMVswyzizgBfGbmJhYmMZY/5nVD7ScLjM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-3/6yEyGntyxxCqrMy2M9dtV2pWiD4M0Rtnb52I4n9nU=";
|
||||
cargoDepsName = "lightway";
|
||||
|
||||
cargoBuildFlags = lib.cli.toGNUCommandLine { } {
|
||||
package = [
|
||||
"lightway-client"
|
||||
"lightway-server"
|
||||
];
|
||||
|
||||
features = lib.optionals stdenv.hostPlatform.isLinux [
|
||||
"io-uring"
|
||||
];
|
||||
};
|
||||
|
||||
# Some tests rely on debug_assert! and fail in release.
|
||||
# https://github.com/expressvpn/lightway/issues/274
|
||||
checkType = "debug";
|
||||
|
||||
# For wolfSSL.
|
||||
nativeBuildInputs = [
|
||||
autoconf
|
||||
automake
|
||||
libtool
|
||||
rustPlatform.bindgenHook
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "A modern VPN protocol in Rust";
|
||||
homepage = "https://expressvpn.com/lightway";
|
||||
license = lib.licenses.agpl3Only;
|
||||
maintainers = with lib.maintainers; [
|
||||
dustyhorizon
|
||||
usertam
|
||||
];
|
||||
platforms = with lib.platforms; darwin ++ linux;
|
||||
mainProgram = "lightway-client";
|
||||
};
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
{
|
||||
lib,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
pkg-config,
|
||||
installShellFiles,
|
||||
oniguruma,
|
||||
rust-jemalloc-sys,
|
||||
stdenv,
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "mado";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "akiomik";
|
||||
repo = "mado";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-wAuV4w0dKfUbJVLTdp59/u4y13SPy3wkRfTlpvyE/zY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-fkalUnPkjjzhLaACh+WQP4tG5VzZ7wmrh5T1DVgSDwM=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
installShellFiles
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
oniguruma
|
||||
rust-jemalloc-sys
|
||||
];
|
||||
|
||||
env = {
|
||||
RUSTONIG_SYSTEM_LIBONIG = true;
|
||||
};
|
||||
|
||||
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
|
||||
installShellCompletion --cmd mado \
|
||||
--bash <($out/bin/mado generate-shell-completion bash) \
|
||||
--zsh <($out/bin/mado generate-shell-completion zsh) \
|
||||
--fish <($out/bin/mado generate-shell-completion fish)
|
||||
'';
|
||||
|
||||
checkFlags = [
|
||||
# # seem to be slightly broken inside of the build sandbox
|
||||
"--skip=check_empty_stdin_with_file"
|
||||
"--skip=check_stdin"
|
||||
"--skip=check_stdin_with_file"
|
||||
"--skip=generate_shell_completion_invalid"
|
||||
"--skip=unknown_command"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Markdown linter written in Rust";
|
||||
homepage = "https://github.com/akiomik/mado";
|
||||
changelog = "https://github.com/akiomik/mado/blob/v${finalAttrs.version}/CHANGELOG.md";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ jasonxue1 ];
|
||||
mainProgram = "mado";
|
||||
};
|
||||
})
|
||||
@@ -6,17 +6,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "mdbook-i18n-helpers";
|
||||
version = "0.3.5";
|
||||
version = "0.3.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "google";
|
||||
repo = "mdbook-i18n-helpers";
|
||||
# TODO fix once upstream uses semver for tags again
|
||||
tag = "mdbook-i18n-helpers-${version}";
|
||||
hash = "sha256-FdguzuYpMl6i1dvoPNE1Bk+GTmeTrqLUY/sVRsbETtU=";
|
||||
hash = "sha256-9sJ9FK85UzY3ggh3h1fipbh0LraTvQJ0ZfhSGcahiDM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-ZBGMfJA2diPvvoIXPosUs4ngXU9/GMGa4GAlKIjwm8s=";
|
||||
cargoHash = "sha256-ZinW9UFp03LXtk+9vuSNojVZtaA7uBlrpdapY48nZdY=";
|
||||
|
||||
meta = {
|
||||
description = "Helpers for a mdbook i18n workflow based on Gettext";
|
||||
|
||||
@@ -1,172 +0,0 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
nixosTests,
|
||||
copyDesktopItems,
|
||||
makeDesktopItem,
|
||||
makeWrapper,
|
||||
wrapGAppsHook3,
|
||||
gobject-introspection,
|
||||
jre, # old or modded versions of the game may require Java 8 (https://aur.archlinux.org/packages/minecraft-launcher/#pinned-674960)
|
||||
xorg,
|
||||
zlib,
|
||||
nss,
|
||||
nspr,
|
||||
fontconfig,
|
||||
pango,
|
||||
cairo,
|
||||
expat,
|
||||
alsa-lib,
|
||||
cups,
|
||||
dbus,
|
||||
atk,
|
||||
gtk3-x11,
|
||||
gtk2-x11,
|
||||
gdk-pixbuf,
|
||||
glib,
|
||||
curl,
|
||||
freetype,
|
||||
libpulseaudio,
|
||||
libuuid,
|
||||
systemd,
|
||||
flite ? null,
|
||||
libXxf86vm ? null,
|
||||
}:
|
||||
let
|
||||
desktopItem = makeDesktopItem {
|
||||
name = "minecraft-launcher";
|
||||
exec = "minecraft-launcher";
|
||||
icon = "minecraft-launcher";
|
||||
comment = "Official launcher for Minecraft, a sandbox-building game";
|
||||
desktopName = "Minecraft Launcher";
|
||||
categories = [ "Game" ];
|
||||
};
|
||||
|
||||
envLibPath = lib.makeLibraryPath [
|
||||
curl
|
||||
libpulseaudio
|
||||
systemd
|
||||
alsa-lib # needed for narrator
|
||||
flite # needed for narrator
|
||||
libXxf86vm # needed only for versions <1.13
|
||||
];
|
||||
|
||||
libPath = lib.makeLibraryPath (
|
||||
[
|
||||
alsa-lib
|
||||
atk
|
||||
cairo
|
||||
cups
|
||||
dbus
|
||||
expat
|
||||
fontconfig
|
||||
freetype
|
||||
gdk-pixbuf
|
||||
glib
|
||||
pango
|
||||
gtk3-x11
|
||||
gtk2-x11
|
||||
nspr
|
||||
nss
|
||||
stdenv.cc.cc
|
||||
zlib
|
||||
libuuid
|
||||
]
|
||||
++ (with xorg; [
|
||||
libX11
|
||||
libxcb
|
||||
libXcomposite
|
||||
libXcursor
|
||||
libXdamage
|
||||
libXext
|
||||
libXfixes
|
||||
libXi
|
||||
libXrandr
|
||||
libXrender
|
||||
libXtst
|
||||
libXScrnSaver
|
||||
])
|
||||
);
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "minecraft-launcher";
|
||||
|
||||
version = "2.2.1441";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://launcher.mojang.com/download/linux/x86_64/minecraft-launcher_${version}.tar.gz";
|
||||
sha256 = "03q579hvxnsh7d00j6lmfh53rixdpf33xb5zlz7659pvb9j5w0cm";
|
||||
};
|
||||
|
||||
icon = fetchurl {
|
||||
url = "https://launcher.mojang.com/download/minecraft-launcher.svg";
|
||||
sha256 = "0w8z21ml79kblv20wh5lz037g130pxkgs8ll9s3bi94zn2pbrhim";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
makeWrapper
|
||||
wrapGAppsHook3
|
||||
copyDesktopItems
|
||||
gobject-introspection
|
||||
];
|
||||
|
||||
sourceRoot = ".";
|
||||
|
||||
dontWrapGApps = true;
|
||||
dontConfigure = true;
|
||||
dontBuild = true;
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/opt
|
||||
mv minecraft-launcher $out/opt
|
||||
|
||||
install -D $icon $out/share/icons/hicolor/symbolic/apps/minecraft-launcher.svg
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
preFixup = ''
|
||||
patchelf \
|
||||
--set-interpreter ${stdenv.cc.bintools.dynamicLinker} \
|
||||
--set-rpath '$ORIGIN/'":${libPath}" \
|
||||
$out/opt/minecraft-launcher/minecraft-launcher
|
||||
patchelf \
|
||||
--set-rpath '$ORIGIN/'":${libPath}" \
|
||||
$out/opt/minecraft-launcher/libcef.so
|
||||
patchelf \
|
||||
--set-rpath '$ORIGIN/'":${libPath}" \
|
||||
$out/opt/minecraft-launcher/liblauncher.so
|
||||
'';
|
||||
|
||||
postFixup = ''
|
||||
# Do not create `GPUCache` in current directory
|
||||
makeWrapper $out/opt/minecraft-launcher/minecraft-launcher $out/bin/minecraft-launcher \
|
||||
--prefix LD_LIBRARY_PATH : ${envLibPath} \
|
||||
--prefix PATH : ${lib.makeBinPath [ jre ]} \
|
||||
--set JAVA_HOME ${lib.getBin jre} \
|
||||
--chdir /tmp \
|
||||
"''${gappsWrapperArgs[@]}"
|
||||
'';
|
||||
|
||||
desktopItems = [ desktopItem ];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Official launcher for Minecraft, a sandbox-building game";
|
||||
homepage = "https://minecraft.net";
|
||||
maintainers = with maintainers; [ ryantm ];
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
license = licenses.unfree;
|
||||
platforms = [ "x86_64-linux" ];
|
||||
# "minecraft-launcher will fail on NixOS for minecraft versions >1.19
|
||||
# try prismlauncher or atlauncher instead"
|
||||
broken = true;
|
||||
};
|
||||
|
||||
passthru = {
|
||||
tests = { inherit (nixosTests) minecraft; };
|
||||
updateScript = ./update.sh;
|
||||
};
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl jq common-updater-scripts
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
version=$(curl -s 'https://launchermeta.mojang.com/v1/products/launcher/6f083b80d5e6fabbc4236f81d0d8f8a350c665a9/linux.json' | jq -r '."launcher-core"[0].version.name')
|
||||
update-source-version minecraft "${version}"
|
||||
@@ -2,7 +2,7 @@
|
||||
stdenv,
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
unstableGitUpdater,
|
||||
gitUpdater,
|
||||
nixosTests,
|
||||
boost,
|
||||
cmake,
|
||||
@@ -31,13 +31,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "miracle-wm";
|
||||
version = "0.6.2-unstable-2025-08-27";
|
||||
version = "0.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "miracle-wm-org";
|
||||
repo = "miracle-wm";
|
||||
rev = "0a55a023adf511b042f922aeba666744805be988";
|
||||
hash = "sha256-yf7knY1tNFeCwePsfTAMAxIma+ZeZUvqpMJe7ABahEw=";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-SAeQ7nFsr37I8XncV3eMT8JCb74CdM+xPrNBX+qf8Bc=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
@@ -118,7 +118,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
'';
|
||||
|
||||
passthru = {
|
||||
updateScript = unstableGitUpdater { tagPrefix = "v"; };
|
||||
updateScript = gitUpdater { rev-prefix = "v"; };
|
||||
providedSessions = [ "miracle-wm" ];
|
||||
tests.vm = nixosTests.miracle-wm;
|
||||
};
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "mmdbctl";
|
||||
version = "1.4.7";
|
||||
version = "1.4.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ipinfo";
|
||||
repo = "mmdbctl";
|
||||
tag = "mmdbctl-${version}";
|
||||
hash = "sha256-drYtuL4TzutzitLVKyUotxgyDjL7AMNnt0vVtfQhu4A=";
|
||||
hash = "sha256-9s/dyORfv3lNf9W6oE1PHhaTgJFdeFa46pf54c/cwH0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-4T3HEzRerC4KrGQnMNSW3OVzChUIf4yJ7qS9v8mWIX4=";
|
||||
|
||||
@@ -22,12 +22,12 @@ let
|
||||
in
|
||||
stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
pname = "opencode";
|
||||
version = "0.6.3";
|
||||
version = "0.6.4";
|
||||
src = fetchFromGitHub {
|
||||
owner = "sst";
|
||||
repo = "opencode";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-hufgCO3g0WZT4+hX1lqmhvrthFO30c0NS3ryNJMmOxo=";
|
||||
hash = "sha256-o7SzDGbWgCh8cMNK+PeLxAw0bQMKFouHdedUslpA6gw=";
|
||||
};
|
||||
|
||||
tui = buildGoModule {
|
||||
@@ -135,6 +135,7 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
--define OPENCODE_TUI_PATH="'${finalAttrs.tui}/bin/tui'" \
|
||||
--define OPENCODE_VERSION="'${finalAttrs.version}'" \
|
||||
--compile \
|
||||
--compile-exec-argv="--" \
|
||||
--target=${bun-target.${stdenvNoCC.hostPlatform.system}} \
|
||||
--outfile=opencode \
|
||||
./packages/opencode/src/index.ts \
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "openlinkhub";
|
||||
version = "0.6.1";
|
||||
version = "0.6.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jurkovic-nikola";
|
||||
repo = "OpenLinkHub";
|
||||
tag = version;
|
||||
hash = "sha256-kEbJwCAs2gTNs0z8A3kOl1O4HQ4L5+urTo+hLh6vOPM=";
|
||||
hash = "sha256-fmWfHJ6alB+UlHlUrwMQ/npv7SuMjAz5hT0UGhB7O/E=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
lib,
|
||||
stdenv,
|
||||
fetchurl,
|
||||
kernel,
|
||||
linux_latest,
|
||||
elfutils,
|
||||
python3,
|
||||
newt,
|
||||
@@ -20,14 +20,11 @@
|
||||
binutils-unwrapped,
|
||||
libiberty,
|
||||
audit,
|
||||
libbfd,
|
||||
libbfd_2_38,
|
||||
libopcodes,
|
||||
libopcodes_2_38,
|
||||
libpfm,
|
||||
libtraceevent,
|
||||
openssl,
|
||||
systemtap,
|
||||
systemtap-unwrapped,
|
||||
numactl,
|
||||
zlib,
|
||||
babeltrace,
|
||||
@@ -57,43 +54,28 @@ in
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "perf-linux";
|
||||
inherit (kernel) version src;
|
||||
inherit (linux_latest) version src;
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
|
||||
patches =
|
||||
lib.optionals (lib.versionAtLeast kernel.version "5.10" && lib.versionOlder kernel.version "6.13")
|
||||
[
|
||||
# fix wrong path to dmesg
|
||||
./fix-dmesg-path.diff
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
# Linux scripts
|
||||
patchShebangs scripts
|
||||
patchShebangs tools/perf/check-headers.sh
|
||||
''
|
||||
+ lib.optionalString (lib.versionAtLeast kernel.version "6.3") ''
|
||||
# perf-specific scripts
|
||||
patchShebangs tools/perf/pmu-events
|
||||
''
|
||||
+ ''
|
||||
cd tools/perf
|
||||
|
||||
for x in util/build-id.c util/dso.c; do
|
||||
substituteInPlace $x --replace /usr/lib/debug /run/current-system/sw/lib/debug
|
||||
done
|
||||
|
||||
''
|
||||
+ lib.optionalString (lib.versionAtLeast kernel.version "5.8") ''
|
||||
substituteInPlace scripts/python/flamegraph.py \
|
||||
--replace "/usr/share/d3-flame-graph/d3-flamegraph-base.html" \
|
||||
"${d3-flame-graph-templates}/share/d3-flame-graph/d3-flamegraph-base.html"
|
||||
|
||||
''
|
||||
+ lib.optionalString (lib.versionAtLeast kernel.version "6.0") ''
|
||||
patchShebangs pmu-events/jevents.py
|
||||
'';
|
||||
|
||||
@@ -137,33 +119,14 @@ stdenv.mkDerivation {
|
||||
numactl
|
||||
python3
|
||||
babeltrace
|
||||
libopcodes
|
||||
libpfm
|
||||
python3.pkgs.setuptools
|
||||
]
|
||||
++ (
|
||||
if (lib.versionAtLeast kernel.version "5.19") then
|
||||
[
|
||||
libbfd
|
||||
libopcodes
|
||||
]
|
||||
else
|
||||
[
|
||||
libbfd_2_38
|
||||
libopcodes_2_38
|
||||
]
|
||||
)
|
||||
++ lib.optional (lib.meta.availableOn stdenv.hostPlatform systemtap) systemtap.stapBuild
|
||||
++ lib.optional (lib.meta.availableOn stdenv.hostPlatform systemtap-unwrapped) systemtap-unwrapped
|
||||
++ lib.optional withGtk gtk2
|
||||
++ lib.optional withZstd zstd
|
||||
++ lib.optional withLibcap libcap
|
||||
++ lib.optional (lib.versionAtLeast kernel.version "5.8") libpfm
|
||||
++ lib.optional (lib.versionAtLeast kernel.version "6.0") python3.pkgs.setuptools
|
||||
# Python 3.12 no longer includes distutils, not needed for 6.0 and newer.
|
||||
++
|
||||
lib.optional
|
||||
(!(lib.versionAtLeast kernel.version "6.0") && lib.versionAtLeast python3.version "3.12")
|
||||
[
|
||||
python3.pkgs.distutils
|
||||
python3.pkgs.packaging
|
||||
];
|
||||
++ lib.optional withLibcap libcap;
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString [
|
||||
"-Wno-error=cpp"
|
||||
@@ -206,6 +169,5 @@ stdenv.mkDerivation {
|
||||
mainProgram = "perf";
|
||||
maintainers = with maintainers; [ tobim ];
|
||||
platforms = platforms.linux;
|
||||
broken = kernel.kernelOlder "5";
|
||||
};
|
||||
}
|
||||
@@ -6,17 +6,17 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "postgres-lsp";
|
||||
version = "0.10.0";
|
||||
version = "0.13.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "supabase-community";
|
||||
repo = "postgres-language-server";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-RwUX5EXRyvmC8LCnlQQIbqnLGn7XYXjLsI9UurCAThs=";
|
||||
hash = "sha256-0Q8MxKeh12STWIJ9441uTz+qQXEJjCESj21C4X8CBC4=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
cargoHash = "sha256-qs/M9+iZCx75wv+UcRRH4hjEuNDsnJYKAvnd0DNaRQ8=";
|
||||
cargoHash = "sha256-oIbS5BUpNOXwiRconqJI/jdXeX05FIZVNl2kYt+79wY=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
rustPlatform.bindgenHook
|
||||
|
||||
@@ -7,11 +7,11 @@
|
||||
}:
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "powershell-editor-services";
|
||||
version = "4.3.0";
|
||||
version = "4.4.0";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://github.com/PowerShell/PowerShellEditorServices/releases/download/v${version}/PowerShellEditorServices.zip";
|
||||
hash = "sha256-YiXxztfsYujJK6+56Lwi4QdRIZb7NH+dAUJTOYk8pGI=";
|
||||
hash = "sha256-tmz6xkcF44xnG5VwSeHNWzjRQK6wxQ7Ii6mDNisCMb8=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchFromGitHub,
|
||||
cmake,
|
||||
csxcad,
|
||||
tinyxml,
|
||||
vtkWithQt6,
|
||||
qt6,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "qcsxcad";
|
||||
version = "0.6.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "thliebig";
|
||||
repo = "QCSXCAD";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-bX6e3ugHJynU9tP70BV8TadnoGg1VO7SAYJueMkMAyo=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
"out"
|
||||
"dev"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "ENABLE_RPATH" false)
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
csxcad
|
||||
tinyxml
|
||||
vtkWithQt6
|
||||
qt6.qtbase
|
||||
qt6.qt5compat
|
||||
qt6.qtwayland
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
meta = {
|
||||
description = "Qt library for CSXCAD";
|
||||
homepage = "https://github.com/thliebig/QCSXCAD";
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ matthuszagh ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
})
|
||||
@@ -71,6 +71,11 @@ python3.pkgs.buildPythonApplication rec {
|
||||
python3.pkgs.pytestCheckHook
|
||||
];
|
||||
|
||||
# Enable when https://github.com/containers/ramalama/pull/1891 is released
|
||||
disabledTests = [
|
||||
"test_ollama_model_pull"
|
||||
];
|
||||
|
||||
passthru = {
|
||||
tests = {
|
||||
withoutPodman = ramalama.override {
|
||||
|
||||
@@ -163,6 +163,7 @@ stdenv.mkDerivation rec {
|
||||
|
||||
passthru.tests = {
|
||||
uefiCdrom = nixosTests.boot.uefiCdrom;
|
||||
inherit (nixosTests) refind;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
@@ -183,7 +184,10 @@ stdenv.mkDerivation rec {
|
||||
Linux kernels that provide EFI stub support.
|
||||
'';
|
||||
homepage = "http://refind.sourceforge.net/";
|
||||
maintainers = with maintainers; [ johnrtitor ];
|
||||
maintainers = with maintainers; [
|
||||
johnrtitor
|
||||
RossComputerGuy
|
||||
];
|
||||
platforms = [
|
||||
"i686-linux"
|
||||
"x86_64-linux"
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "repomix";
|
||||
version = "1.3.0";
|
||||
version = "1.4.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yamadashy";
|
||||
repo = "repomix";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-09neN7sh4TRM+rQBqCQHqW165i6+RY9IF67ft6OgyhI=";
|
||||
hash = "sha256-65A8HN0Mp8QOEfIjiDZwr/qgWe57XTCdd1eBd3mm9fE=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-nLxIPwx+zvYCMZ6y9ntbWvrJvO4g5J7Tf9rYk26gyAs=";
|
||||
npmDepsHash = "sha256-PfElq+C8kazP3OLF5LFAZitIXhVpWdj/fCyH2S7d/zg=";
|
||||
|
||||
nativeInstallCheckInputs = [ versionCheckHook ];
|
||||
doInstallCheck = true;
|
||||
|
||||
@@ -7,14 +7,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "responder";
|
||||
version = "3.1.6.0";
|
||||
version = "3.1.7.0";
|
||||
format = "other";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "lgandx";
|
||||
repo = "Responder";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-2aNJkcdtTpw4OYHSTgJUYsGOsBD1I0ad3cSpVCS9kpo=";
|
||||
hash = "sha256-ZC74VFnixSc97fRkRSOJmc39YLIP95qAUFydIcyzNdo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "roddhjav-apparmor-rules";
|
||||
version = "0-unstable-2025-08-25";
|
||||
version = "0-unstable-2025-09-03";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "roddhjav";
|
||||
repo = "apparmor.d";
|
||||
rev = "7ecc84d3b0e13f5d346a906dceda14321fddae1a";
|
||||
hash = "sha256-XOatGZxhlcd1JXYJzgye/2Dok+Jmppj4cJuiYy6uhxc=";
|
||||
rev = "4c84b572cda4433a664b1488e980034886652629";
|
||||
hash = "sha256-GoH7LR3jIgeSTjVpz8jAzDGWrAAM7Bw3OAzwmjdnRmE=";
|
||||
};
|
||||
|
||||
dontConfigure = true;
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
diff --git i/src/pc/update_checker.c w/src/pc/update_checker.c
|
||||
index e83414106..53909c075 100644
|
||||
--- i/src/pc/update_checker.c
|
||||
+++ w/src/pc/update_checker.c
|
||||
@@ -127,6 +127,7 @@ void get_version_remote(void) {
|
||||
}
|
||||
|
||||
void check_for_updates(void) {
|
||||
+ return;
|
||||
LOADING_SCREEN_MUTEX(loading_screen_set_segment_text("Checking For Updates"));
|
||||
|
||||
get_version_remote();
|
||||
@@ -37,15 +37,17 @@ in
|
||||
# note: there is a generic builder in pkgs/games/sm64ex/generic.nix that is meant to help build sm64ex and its forks; however sm64coopdx has departed significantly enough in its build that it doesn't make sense to use that other than the baseRom derivation
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "sm64coopdx";
|
||||
version = "1.3.0";
|
||||
version = "1.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "coop-deluxe";
|
||||
repo = "sm64coopdx";
|
||||
rev = "v1.3"; # it seems coopdx has taken on some stylistic versioning...
|
||||
hash = "sha256-ssbvNnBBxahzJRIX5Vhze+Nfh3ADoy+NrUIF2RZHye8=";
|
||||
rev = "v1.3.2";
|
||||
hash = "sha256-FHH3+pGowkT8asDmU9qxPNDKy4VPKlkA0X7e4gnX9KY=";
|
||||
};
|
||||
|
||||
patches = [ ./no-update-check.patch ];
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -11,13 +11,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "sql-formatter";
|
||||
version = "15.6.6";
|
||||
version = "15.6.8";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sql-formatter-org";
|
||||
repo = "sql-formatter";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-61E3DizwO9Lml0Uu4tOhpCbzaxiDrY5vPqk2TY7fIqo=";
|
||||
hash = "sha256-iq8sUwlkqfItNjniFTeJ+tXaj4nW915XPfxWzYSQawo=";
|
||||
};
|
||||
|
||||
yarnOfflineCache = fetchYarnDeps {
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
fetchgit,
|
||||
pkg-config,
|
||||
gettext,
|
||||
cpio,
|
||||
elfutils,
|
||||
python3,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "systemtap";
|
||||
version = "5.2";
|
||||
|
||||
src = fetchgit {
|
||||
url = "git://sourceware.org/git/systemtap.git";
|
||||
rev = "release-${finalAttrs.version}";
|
||||
hash = "sha256-SUPNarZW8vdK9hQaI2kU+rfKWIPiXB4BvJvRNC1T9tU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
cpio
|
||||
python3
|
||||
python3.pkgs.setuptools
|
||||
];
|
||||
buildInputs = [
|
||||
elfutils
|
||||
gettext
|
||||
python3
|
||||
];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = {
|
||||
homepage = "https://sourceware.org/systemtap/";
|
||||
description = "Provides a scripting language for instrumentation on a live kernel plus user-space";
|
||||
license = lib.licenses.gpl2;
|
||||
platforms = lib.systems.inspect.patterns.isGnu;
|
||||
};
|
||||
})
|
||||
@@ -2,6 +2,7 @@
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitea,
|
||||
installShellFiles,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
@@ -28,4 +29,20 @@ buildGoModule rec {
|
||||
];
|
||||
mainProgram = "tea";
|
||||
};
|
||||
|
||||
ldflags = [
|
||||
"-X code.gitea.io/tea/cmd.Version=${version}"
|
||||
];
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = ''
|
||||
installShellCompletion --cmd tea \
|
||||
--bash <($out/bin/tea completion bash) \
|
||||
--fish <($out/bin/tea completion fish) \
|
||||
--zsh <($out/bin/tea completion zsh)
|
||||
|
||||
mkdir $out/share/powershell/ -p
|
||||
$out/bin/tea completion pwsh > $out/share/powershell/tea.Completion.ps1
|
||||
'';
|
||||
}
|
||||
|
||||
@@ -5,16 +5,16 @@
|
||||
}:
|
||||
buildGoModule rec {
|
||||
pname = "tfswitch";
|
||||
version = "1.5.0";
|
||||
version = "1.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "warrensbox";
|
||||
repo = "terraform-switcher";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-u7EnixxFds3dqNcyv+rHrGZdmwc34amq4tGGmBw0RsU=";
|
||||
sha256 = "sha256-gXf6lqxWTX44fhAa34QlcKBxc4xLNVFUsGOlKvWnWKc=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-HbNdWvKvmZDalDQoMtQMaXiT0NIFNtVowSIYO4z9h8c=";
|
||||
vendorHash = "sha256-cc1ZvVCcjFlJcHs0DH4atyWISrrDfyXPK6j2dSgWD0k=";
|
||||
|
||||
# Disable tests since it requires network access and relies on the
|
||||
# presence of release.hashicorp.com
|
||||
|
||||
@@ -45,13 +45,13 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "ultrastardx";
|
||||
version = "2025.8.0";
|
||||
version = "2025.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "UltraStar-Deluxe";
|
||||
repo = "USDX";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-rliUJNhvbXbD+ELxwutCoQs6BO1DyJ8J/+mmYHPuvQE=";
|
||||
hash = "sha256-SQqmcFchXaYNKzQHjBcisZTjAN9TTWuKXv657yWGghw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "vuetorrent";
|
||||
version = "2.28.2";
|
||||
version = "2.29.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "VueTorrent";
|
||||
repo = "VueTorrent";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-8n5OM55Z5xGLAXU6jqt2bKmrYa5ZnWatW0LsjOkJeDg=";
|
||||
hash = "sha256-EnyLMaLElgGUjwxpkhTxV7aVa8l5B5wpBBzg5qyagIQ=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-Sh6s7zACAUu8j9ugST71j5u5nEWGVxC6dOniE+xjP6E=";
|
||||
npmDepsHash = "sha256-JA5nl+otuyloSi7JPRb8ZJe6PRAaYxuuEpqlmLE65yU=";
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
@@ -9,20 +9,20 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "wasmtime";
|
||||
version = "33.0.0";
|
||||
version = "36.0.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bytecodealliance";
|
||||
repo = "wasmtime";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-/i//5kPN1/zQnfDZWuJldKdFWk/DKAf5b5P4F58rgPI=";
|
||||
hash = "sha256-tcG78WubEm1zZXfNsDCwtw4QF5ip3ZjkxaLu8D4qBc4=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
# Disable cargo-auditable until https://github.com/rust-secure-code/cargo-auditable/issues/124 is solved.
|
||||
auditable = false;
|
||||
|
||||
cargoHash = "sha256-4ziMGmBbQ4anXvF6wwK1ezYXHY7JBvMRmPDreNME0H8=";
|
||||
cargoHash = "sha256-iCYZLKjO1kD753S1CiwTHa9qVxg9Y2ZMCKg0wod7GbQ=";
|
||||
cargoBuildFlags = [
|
||||
"--package"
|
||||
"wasmtime-cli"
|
||||
|
||||
@@ -12,16 +12,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "yara-x";
|
||||
version = "1.5.0";
|
||||
version = "1.6.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "VirusTotal";
|
||||
repo = "yara-x";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-YZmhwHA6PnQb3QXhbWK8cbV0CScbiD5k+HceDcV6iCI=";
|
||||
hash = "sha256-LpdpdzUof+Buz5QQcWUr23AsSyfvUQYPp7RhHWXRb+I=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-8LofNTLa3a2dDH72T54HJR/+qArXt+X6OMJIQwmjQIQ=";
|
||||
cargoHash = "sha256-IO8ER92vWO3Q9MntaGwdhEFgy9G35Q3LOG5GU5rJpQY=";
|
||||
|
||||
nativeBuildInputs = [
|
||||
installShellFiles
|
||||
|
||||
@@ -10,16 +10,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "ygot";
|
||||
version = "0.33.0";
|
||||
version = "0.34.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "openconfig";
|
||||
repo = "ygot";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-O8nBcXRKKd+dV0jub5tVvG8WoxGMR4r1cqOmTzO+LDU=";
|
||||
hash = "sha256-/dE3IsooCuIi3e+1RRA50wKB2NE8ohf46wFqZcdFKq0=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-AgSKfy8Dbc5fRhJ2oskmkShL/mHb2FKkGZoqPyagLfE=";
|
||||
vendorHash = "sha256-66hugAa31RWQxGNsVpfyLzZoXbW7KQ73ggvvInn8dw8=";
|
||||
|
||||
excludedPackages = [
|
||||
"demo/*"
|
||||
|
||||
@@ -19,14 +19,14 @@ python3Packages.buildPythonApplication rec {
|
||||
# The websites yt-dlp deals with are a very moving target. That means that
|
||||
# downloads break constantly. Because of that, updates should always be backported
|
||||
# to the latest stable release.
|
||||
version = "2025.08.27";
|
||||
version = "2025.09.05";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "yt-dlp";
|
||||
repo = "yt-dlp";
|
||||
tag = version;
|
||||
hash = "sha256-E8++/gK/SpY93UW/9U266Qj1Kkn6CeNou7bKTqpCgFw=";
|
||||
hash = "sha256-9y6OUVm6hNTTi5FFmd9DHcmAMrvSmDD+4kDe00aMTDI=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
||||
@@ -1,42 +0,0 @@
|
||||
{
|
||||
haskellLib,
|
||||
fetchpatch,
|
||||
buildPackages,
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (haskellLib)
|
||||
addBuildTools
|
||||
appendConfigureFlag
|
||||
dontHaddock
|
||||
doJailbreak
|
||||
markUnbroken
|
||||
overrideCabal
|
||||
;
|
||||
in
|
||||
self: super: {
|
||||
ghcjs =
|
||||
overrideCabal
|
||||
(drv: {
|
||||
# Jailbreak and patch can be dropped after https://github.com/ghcjs/ghcjs/pull/833
|
||||
jailbreak = true;
|
||||
patches = drv.patches or [ ] ++ [
|
||||
(fetchpatch {
|
||||
name = "ghcjs-aeson-2.0.patch";
|
||||
url = "https://github.com/ghcjs/ghcjs/commit/9ef1f92d740e8503d15d91699f57db147f0474cc.patch";
|
||||
sha256 = "0cgxcy6b5870bv4kj54n3bzcqinh4gl4w4r78dg43h2mblhkzbnj";
|
||||
})
|
||||
];
|
||||
})
|
||||
(
|
||||
super.ghcjs.overrideScope (
|
||||
self: super: {
|
||||
# Allow transformers-compat >= 0.7
|
||||
optparse-applicative = doJailbreak self.optparse-applicative_0_15_1_0;
|
||||
ansi-wl-pprint = self.ansi-wl-pprint_0_6_9;
|
||||
ansi-terminal = self.ansi-terminal_1_0_2;
|
||||
ansi-terminal-types = self.ansi-terminal-types_0_11_5;
|
||||
}
|
||||
)
|
||||
);
|
||||
}
|
||||
@@ -1,70 +0,0 @@
|
||||
{
|
||||
perl,
|
||||
autoconf,
|
||||
automake,
|
||||
python3,
|
||||
gcc,
|
||||
cabal-install,
|
||||
runCommand,
|
||||
fetchpatch,
|
||||
|
||||
ghc,
|
||||
happy,
|
||||
alex,
|
||||
|
||||
ghcjsSrc,
|
||||
version,
|
||||
}:
|
||||
|
||||
runCommand "configured-ghcjs-src"
|
||||
{
|
||||
nativeBuildInputs = [
|
||||
perl
|
||||
autoconf
|
||||
automake
|
||||
python3
|
||||
ghc
|
||||
happy
|
||||
alex
|
||||
cabal-install
|
||||
gcc
|
||||
];
|
||||
|
||||
inherit ghcjsSrc;
|
||||
|
||||
ctimePatch = fetchpatch {
|
||||
name = "ghcjs-base-ctime-64-bit.patch";
|
||||
url = "https://github.com/ghcjs/ghcjs/commit/b7711fbca7c3f43a61f1dba526e6f2a2656ef44c.patch";
|
||||
hash = "sha256-zZ3l8/5gbIGtvu0s2Xl92fEDhkhJ2c2w+5Ql5qkvr3s=";
|
||||
};
|
||||
}
|
||||
''
|
||||
export HOME=$(pwd)
|
||||
mkdir $HOME/.cabal
|
||||
touch $HOME/.cabal/config
|
||||
cp -r "$ghcjsSrc" "$out"
|
||||
chmod -R +w "$out"
|
||||
cd "$out"
|
||||
|
||||
patch -p1 -i "$ctimePatch"
|
||||
|
||||
# TODO: Find a better way to avoid impure version numbers
|
||||
sed -i 's/RELEASE=NO/RELEASE=YES/' ghc/configure.ac
|
||||
|
||||
# These files are needed by ghc-boot package, and these are generated by the
|
||||
# make/hadrian build system when compiling ghc. Since we dont have access to
|
||||
# the generated code of the ghc while it got built, here is a little hack to
|
||||
# generate these again.
|
||||
runhaskell ${./generate_host_version.hs}
|
||||
mkdir -p utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Platform
|
||||
mv Host.hs utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Platform/Host.hs
|
||||
mv Version.hs utils/pkg-cache/ghc/libraries/ghc-boot/dist-install/build/GHC/Version.hs
|
||||
|
||||
# The ghcjs has the following hardcoded paths of lib dir in its code. Patching
|
||||
# these to match the path expected by the nixpkgs's generic-builder, etc.
|
||||
sed -i 's/libSubDir = "lib"/libSubDir = "lib\/ghcjs-${version}"/' src-bin/Boot.hs
|
||||
sed -i 's@let libDir = takeDirectory haddockPath </> ".." </> "lib"@let libDir = takeDirectory haddockPath </> ".." </> "lib/ghcjs-${version}"@' src-bin/HaddockDriver.hs
|
||||
|
||||
patchShebangs .
|
||||
./utils/makePackages.sh copy
|
||||
''
|
||||
@@ -1,144 +0,0 @@
|
||||
{
|
||||
stdenv,
|
||||
pkgsHostHost,
|
||||
callPackage,
|
||||
fetchgit,
|
||||
fetchpatch,
|
||||
ghcjsSrcJson ? null,
|
||||
ghcjsSrc ? fetchgit (lib.importJSON ghcjsSrcJson),
|
||||
bootPkgs,
|
||||
stage0,
|
||||
haskellLib,
|
||||
cabal-install,
|
||||
nodejs,
|
||||
makeWrapper,
|
||||
xorg,
|
||||
gmp,
|
||||
pkg-config,
|
||||
gcc,
|
||||
lib,
|
||||
ghcjsDepOverrides ? (_: _: { }),
|
||||
linkFarm,
|
||||
buildPackages,
|
||||
}:
|
||||
|
||||
let
|
||||
passthru = {
|
||||
configuredSrc = callPackage ./configured-ghcjs-src.nix {
|
||||
inherit ghcjsSrc;
|
||||
inherit (bootPkgs) ghc alex;
|
||||
inherit (bootGhcjs) version;
|
||||
happy = bootPkgs.happy_1_19_12;
|
||||
};
|
||||
bootPkgs = bootPkgs.extend (
|
||||
lib.foldr lib.composeExtensions (_: _: { }) [
|
||||
(
|
||||
self: _:
|
||||
import stage0 {
|
||||
inherit (passthru) configuredSrc;
|
||||
inherit (self) callPackage;
|
||||
}
|
||||
)
|
||||
|
||||
(callPackage ./common-overrides.nix {
|
||||
inherit haskellLib fetchpatch buildPackages;
|
||||
})
|
||||
ghcjsDepOverrides
|
||||
]
|
||||
);
|
||||
|
||||
targetPrefix = "";
|
||||
inherit bootGhcjs;
|
||||
inherit (bootGhcjs) version;
|
||||
isGhcjs = true;
|
||||
|
||||
llvmPackages = null;
|
||||
enableShared = true;
|
||||
|
||||
socket-io = pkgsHostHost.nodePackages."socket.io";
|
||||
|
||||
haskellCompilerName = "ghcjs-${bootGhcjs.version}";
|
||||
};
|
||||
|
||||
bootGhcjs = haskellLib.justStaticExecutables passthru.bootPkgs.ghcjs;
|
||||
|
||||
# This provides the stuff we need from the emsdk
|
||||
emsdk = linkFarm "emsdk" [
|
||||
{
|
||||
name = "upstream/bin";
|
||||
path = buildPackages.clang + "/bin";
|
||||
}
|
||||
{
|
||||
name = "upstream/emscripten";
|
||||
path = buildPackages.emscripten + "/bin";
|
||||
}
|
||||
];
|
||||
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
name = bootGhcjs.name;
|
||||
src = passthru.configuredSrc;
|
||||
nativeBuildInputs = [
|
||||
bootGhcjs
|
||||
passthru.bootPkgs.ghc
|
||||
cabal-install
|
||||
nodejs
|
||||
makeWrapper
|
||||
xorg.lndir
|
||||
gmp
|
||||
pkg-config
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
gcc # https://github.com/ghcjs/ghcjs/issues/663
|
||||
];
|
||||
dontConfigure = true;
|
||||
dontInstall = true;
|
||||
|
||||
# Newer versions of `config.sub` reject the `js-ghcjs` host string, but the
|
||||
# older `config.sub` filed vendored within `ghc` still works
|
||||
dontUpdateAutotoolsGnuConfigScripts = true;
|
||||
|
||||
buildPhase = ''
|
||||
export HOME=$TMP
|
||||
mkdir $HOME/.cabal
|
||||
touch $HOME/.cabal/config
|
||||
cd lib/boot
|
||||
|
||||
export EM_CACHE="$HOME/.emscriptencache"
|
||||
mkdir -p "$EM_CACHE"
|
||||
|
||||
mkdir -p $out/bin
|
||||
mkdir -p $out/lib/${bootGhcjs.name}
|
||||
lndir ${bootGhcjs}/bin $out/bin
|
||||
chmod -R +w $out/bin
|
||||
rm $out/bin/ghcjs-boot
|
||||
cp ${bootGhcjs}/bin/ghcjs-boot $out/bin
|
||||
rm $out/bin/haddock
|
||||
cp ${bootGhcjs}/bin/haddock $out/bin
|
||||
cp ${bootGhcjs}/bin/private-ghcjs-hsc2hs $out/bin/ghcjs-hsc2hs
|
||||
|
||||
wrapProgram $out/bin/ghcjs-boot --set ghcjs_libexecdir $out/bin
|
||||
|
||||
wrapProgram $out/bin/ghcjs --add-flags "-B$out/lib/${bootGhcjs.name}"
|
||||
wrapProgram $out/bin/haddock --add-flags "-B$out/lib/${bootGhcjs.name}"
|
||||
wrapProgram $out/bin/ghcjs-pkg --add-flags "--global-package-db=$out/lib/${bootGhcjs.name}/package.conf.d"
|
||||
wrapProgram $out/bin/ghcjs-hsc2hs --add-flags "-I$out/lib/${bootGhcjs.name}/include --template=$out/lib/${bootGhcjs.name}/include/template-hsc.h"
|
||||
|
||||
env PATH=$out/bin:$PATH $out/bin/ghcjs-boot --with-emsdk=${emsdk} --no-haddock
|
||||
'';
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
inherit passthru;
|
||||
|
||||
meta = {
|
||||
platforms = with lib.platforms; linux ++ darwin;
|
||||
|
||||
# Hydra limits jobs to only outputting 1 gigabyte worth of files.
|
||||
# GHCJS outputs over 3 gigabytes.
|
||||
# https://github.com/NixOS/nixpkgs/pull/137066#issuecomment-922335563
|
||||
hydraPlatforms = lib.platforms.none;
|
||||
|
||||
maintainers = with lib.maintainers; [ obsidian-systems-maintenance ];
|
||||
};
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
-- Generate the Host.hs and Version.hs as done by hadrian/src/Rules/Generate.hs
|
||||
|
||||
import GHC.Platform.Host
|
||||
import GHC.Version
|
||||
|
||||
main = do
|
||||
writeFile "Version.hs" versionHs
|
||||
writeFile "Host.hs" platformHostHs
|
||||
|
||||
-- | Generate @Version.hs@ files.
|
||||
versionHs :: String
|
||||
versionHs = unlines
|
||||
[ "module GHC.Version where"
|
||||
, ""
|
||||
, "import Prelude -- See Note [Why do we import Prelude here?]"
|
||||
, ""
|
||||
, "cProjectGitCommitId :: String"
|
||||
, "cProjectGitCommitId = " ++ show cProjectGitCommitId
|
||||
, ""
|
||||
, "cProjectVersion :: String"
|
||||
, "cProjectVersion = " ++ show cProjectVersion
|
||||
, ""
|
||||
, "cProjectVersionInt :: String"
|
||||
, "cProjectVersionInt = " ++ show cProjectVersionInt
|
||||
, ""
|
||||
, "cProjectPatchLevel :: String"
|
||||
, "cProjectPatchLevel = " ++ show cProjectPatchLevel
|
||||
, ""
|
||||
, "cProjectPatchLevel1 :: String"
|
||||
, "cProjectPatchLevel1 = " ++ show cProjectPatchLevel1
|
||||
, ""
|
||||
, "cProjectPatchLevel2 :: String"
|
||||
, "cProjectPatchLevel2 = " ++ show cProjectPatchLevel2
|
||||
]
|
||||
|
||||
-- | Generate @Platform/Host.hs@ files.
|
||||
platformHostHs :: String
|
||||
platformHostHs = unlines
|
||||
[ "module GHC.Platform.Host where"
|
||||
, ""
|
||||
, "import GHC.Platform"
|
||||
, ""
|
||||
, "cHostPlatformArch :: Arch"
|
||||
, "cHostPlatformArch = " ++ show cHostPlatformArch
|
||||
, ""
|
||||
, "cHostPlatformOS :: OS"
|
||||
, "cHostPlatformOS = " ++ show cHostPlatformOS
|
||||
, ""
|
||||
, "cHostPlatformMini :: PlatformMini"
|
||||
, "cHostPlatformMini = PlatformMini"
|
||||
, " { platformMini_arch = cHostPlatformArch"
|
||||
, " , platformMini_os = cHostPlatformOS"
|
||||
, " }"
|
||||
]
|
||||
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"url": "https://github.com/obsidiansystems/ghcjs",
|
||||
"rev": "9fc935f2c3ba6c33ec62eb83afc9f52a893eb68c",
|
||||
"sha256": "sha256:063dmir39c4i1z8ypnmq86g1x2vhqndmdpzc4hyzsy5jjqcbx6i3",
|
||||
"fetchSubmodules": true
|
||||
}
|
||||
@@ -1,245 +0,0 @@
|
||||
{ callPackage, configuredSrc }:
|
||||
|
||||
{
|
||||
|
||||
ghcjs = callPackage (
|
||||
{
|
||||
mkDerivation,
|
||||
aeson,
|
||||
alex,
|
||||
array,
|
||||
attoparsec,
|
||||
base,
|
||||
base16-bytestring,
|
||||
base64-bytestring,
|
||||
binary,
|
||||
bytestring,
|
||||
Cabal,
|
||||
containers,
|
||||
cryptohash,
|
||||
data-default,
|
||||
deepseq,
|
||||
directory,
|
||||
executable-path,
|
||||
filepath,
|
||||
ghc-boot,
|
||||
ghc-boot-th,
|
||||
ghc-compact,
|
||||
ghc-heap,
|
||||
ghc-paths,
|
||||
ghci,
|
||||
happy,
|
||||
hashable,
|
||||
hpc,
|
||||
http-types,
|
||||
HUnit,
|
||||
lens,
|
||||
lib,
|
||||
lifted-base,
|
||||
mtl,
|
||||
network,
|
||||
optparse-applicative,
|
||||
parallel,
|
||||
parsec,
|
||||
process,
|
||||
random,
|
||||
safe,
|
||||
shelly,
|
||||
split,
|
||||
stringsearch,
|
||||
syb,
|
||||
tar,
|
||||
template-haskell,
|
||||
terminfo,
|
||||
test-framework,
|
||||
test-framework-hunit,
|
||||
text,
|
||||
time,
|
||||
transformers,
|
||||
unix,
|
||||
unix-compat,
|
||||
unordered-containers,
|
||||
vector,
|
||||
wai,
|
||||
wai-app-static,
|
||||
wai-extra,
|
||||
wai-websockets,
|
||||
warp,
|
||||
webdriver,
|
||||
websockets,
|
||||
wl-pprint-text,
|
||||
xhtml,
|
||||
yaml,
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "ghcjs";
|
||||
version = "8.10.7";
|
||||
src = configuredSrc + /.;
|
||||
isLibrary = true;
|
||||
isExecutable = true;
|
||||
libraryHaskellDepends = [
|
||||
aeson
|
||||
array
|
||||
attoparsec
|
||||
base
|
||||
base16-bytestring
|
||||
base64-bytestring
|
||||
binary
|
||||
bytestring
|
||||
Cabal
|
||||
containers
|
||||
cryptohash
|
||||
data-default
|
||||
deepseq
|
||||
directory
|
||||
filepath
|
||||
ghc-boot
|
||||
ghc-boot-th
|
||||
ghc-compact
|
||||
ghc-heap
|
||||
ghc-paths
|
||||
ghci
|
||||
hashable
|
||||
hpc
|
||||
lens
|
||||
mtl
|
||||
optparse-applicative
|
||||
parallel
|
||||
parsec
|
||||
process
|
||||
safe
|
||||
split
|
||||
stringsearch
|
||||
syb
|
||||
template-haskell
|
||||
terminfo
|
||||
text
|
||||
time
|
||||
transformers
|
||||
unix
|
||||
unordered-containers
|
||||
vector
|
||||
wl-pprint-text
|
||||
yaml
|
||||
];
|
||||
libraryToolDepends = [
|
||||
alex
|
||||
happy
|
||||
];
|
||||
executableHaskellDepends = [
|
||||
aeson
|
||||
array
|
||||
base
|
||||
binary
|
||||
bytestring
|
||||
Cabal
|
||||
containers
|
||||
deepseq
|
||||
directory
|
||||
executable-path
|
||||
filepath
|
||||
ghc-boot
|
||||
lens
|
||||
mtl
|
||||
optparse-applicative
|
||||
parsec
|
||||
process
|
||||
tar
|
||||
terminfo
|
||||
text
|
||||
time
|
||||
transformers
|
||||
unix
|
||||
unix-compat
|
||||
unordered-containers
|
||||
vector
|
||||
xhtml
|
||||
yaml
|
||||
];
|
||||
testHaskellDepends = [
|
||||
aeson
|
||||
base
|
||||
bytestring
|
||||
data-default
|
||||
deepseq
|
||||
directory
|
||||
filepath
|
||||
http-types
|
||||
HUnit
|
||||
lens
|
||||
lifted-base
|
||||
network
|
||||
optparse-applicative
|
||||
process
|
||||
random
|
||||
shelly
|
||||
test-framework
|
||||
test-framework-hunit
|
||||
text
|
||||
time
|
||||
transformers
|
||||
unordered-containers
|
||||
wai
|
||||
wai-app-static
|
||||
wai-extra
|
||||
wai-websockets
|
||||
warp
|
||||
webdriver
|
||||
websockets
|
||||
yaml
|
||||
];
|
||||
description = "Haskell to JavaScript compiler";
|
||||
license = lib.licenses.mit;
|
||||
}
|
||||
) { };
|
||||
|
||||
ghcjs-th = callPackage (
|
||||
{
|
||||
mkDerivation,
|
||||
base,
|
||||
binary,
|
||||
bytestring,
|
||||
containers,
|
||||
ghc-prim,
|
||||
ghci,
|
||||
lib,
|
||||
template-haskell,
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "ghcjs-th";
|
||||
version = "0.1.0.0";
|
||||
src = configuredSrc + /lib/ghcjs-th;
|
||||
libraryHaskellDepends = [
|
||||
base
|
||||
binary
|
||||
bytestring
|
||||
containers
|
||||
ghc-prim
|
||||
ghci
|
||||
template-haskell
|
||||
];
|
||||
homepage = "https://github.com/ghcjs";
|
||||
license = lib.licenses.mit;
|
||||
}
|
||||
) { };
|
||||
|
||||
ghcjs-prim = callPackage (
|
||||
{
|
||||
mkDerivation,
|
||||
base,
|
||||
ghc-prim,
|
||||
lib,
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "ghcjs-prim";
|
||||
version = "0.1.1.0";
|
||||
src = ./.;
|
||||
libraryHaskellDepends = [
|
||||
base
|
||||
ghc-prim
|
||||
];
|
||||
homepage = "https://github.com/ghcjs";
|
||||
license = lib.licenses.mit;
|
||||
}
|
||||
) { };
|
||||
}
|
||||
@@ -1,87 +0,0 @@
|
||||
{
|
||||
mkDerivation,
|
||||
aeson,
|
||||
array,
|
||||
attoparsec,
|
||||
base,
|
||||
binary,
|
||||
bytestring,
|
||||
containers,
|
||||
deepseq,
|
||||
directory,
|
||||
dlist,
|
||||
fetchFromGitHub,
|
||||
ghc-prim,
|
||||
ghcjs-prim,
|
||||
hashable,
|
||||
HUnit,
|
||||
integer-gmp,
|
||||
primitive,
|
||||
QuickCheck,
|
||||
quickcheck-unicode,
|
||||
random,
|
||||
scientific,
|
||||
test-framework,
|
||||
test-framework-hunit,
|
||||
test-framework-quickcheck2,
|
||||
text,
|
||||
time,
|
||||
transformers,
|
||||
unordered-containers,
|
||||
vector,
|
||||
lib,
|
||||
}:
|
||||
mkDerivation {
|
||||
pname = "ghcjs-base";
|
||||
version = "0.2.1.0";
|
||||
# This is the release 0.2.1.0, but the hackage release misses test source files,
|
||||
# so lets use github https://github.com/ghcjs/ghcjs-base/issues/132
|
||||
src = fetchFromGitHub {
|
||||
owner = "ghcjs";
|
||||
repo = "ghcjs-base";
|
||||
rev = "fbaae59b05b020e91783df122249095e168df53f";
|
||||
sha256 = "sha256-x6eCAK1Hne0QkV3Loi9YpxbleNHU593E4AO8cbk2vUc=";
|
||||
};
|
||||
libraryHaskellDepends = [
|
||||
aeson
|
||||
attoparsec
|
||||
base
|
||||
binary
|
||||
bytestring
|
||||
containers
|
||||
deepseq
|
||||
dlist
|
||||
ghc-prim
|
||||
ghcjs-prim
|
||||
hashable
|
||||
integer-gmp
|
||||
primitive
|
||||
scientific
|
||||
text
|
||||
time
|
||||
transformers
|
||||
unordered-containers
|
||||
vector
|
||||
];
|
||||
testHaskellDepends = [
|
||||
array
|
||||
base
|
||||
bytestring
|
||||
deepseq
|
||||
directory
|
||||
ghc-prim
|
||||
ghcjs-prim
|
||||
HUnit
|
||||
primitive
|
||||
QuickCheck
|
||||
quickcheck-unicode
|
||||
random
|
||||
test-framework
|
||||
test-framework-hunit
|
||||
test-framework-quickcheck2
|
||||
text
|
||||
];
|
||||
homepage = "https://github.com/ghcjs/ghcjs-base";
|
||||
description = "base library for GHCJS";
|
||||
license = lib.licenses.mit;
|
||||
}
|
||||
@@ -37,7 +37,6 @@ self: super:
|
||||
|
||||
# Similar to https://ghc.haskell.org/trac/ghc/ticket/13062
|
||||
happy = dontCheck super.happy;
|
||||
happy_1_19_12 = doDistribute (dontCheck super.happy_1_19_12);
|
||||
|
||||
# add arm specific library
|
||||
wiringPi = overrideCabal (
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user