Merge d7c8095791 into haskell-updates
This commit is contained in:
@@ -43,7 +43,7 @@ jobs:
|
||||
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
|
||||
with:
|
||||
sparse-checkout: |
|
||||
ci/labels
|
||||
ci/github-script
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm install @actions/artifact bottleneck
|
||||
@@ -69,7 +69,7 @@ jobs:
|
||||
github-token: ${{ steps.app-token.outputs.token || github.token }}
|
||||
retries: 3
|
||||
script: |
|
||||
require('./ci/labels/labels.cjs')({
|
||||
require('./ci/github-script/labels.js')({
|
||||
github,
|
||||
context,
|
||||
core,
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
[run]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
@@ -0,0 +1,13 @@
|
||||
# GitHub specific CI scripts
|
||||
|
||||
This folder contains [`actions/github-script`](https://github.com/actions/github-script)-based JavaScript code.
|
||||
It provides a `nix-shell` environment to run and test these actions locally.
|
||||
|
||||
To run any of the scripts locally:
|
||||
|
||||
- Enter `nix-shell` in `./ci/github-script`.
|
||||
- Ensure `gh` is authenticated.
|
||||
|
||||
## Labeler
|
||||
|
||||
Run `./run labels OWNER REPO`, where OWNER is your username or "NixOS" and REPO the name of your fork or "nixpkgs".
|
||||
@@ -1,61 +1,12 @@
|
||||
module.exports = async function ({ github, context, core, dry }) {
|
||||
const Bottleneck = require('bottleneck')
|
||||
const path = require('node:path')
|
||||
const { DefaultArtifactClient } = require('@actions/artifact')
|
||||
const { readFile, writeFile } = require('node:fs/promises')
|
||||
const withRateLimit = require('./withRateLimit.js')
|
||||
|
||||
const artifactClient = new DefaultArtifactClient()
|
||||
|
||||
const stats = {
|
||||
issues: 0,
|
||||
prs: 0,
|
||||
requests: 0,
|
||||
artifacts: 0,
|
||||
}
|
||||
|
||||
// Rate-Limiting and Throttling, see for details:
|
||||
// https://github.com/octokit/octokit.js/issues/1069#throttling
|
||||
// https://docs.github.com/en/rest/using-the-rest-api/best-practices-for-using-the-rest-api
|
||||
const allLimits = new Bottleneck({
|
||||
// Avoid concurrent requests
|
||||
maxConcurrent: 1,
|
||||
// Will be updated with first `updateReservoir()` call below.
|
||||
reservoir: 0,
|
||||
})
|
||||
// Pause between mutative requests
|
||||
const writeLimits = new Bottleneck({ minTime: 1000 }).chain(allLimits)
|
||||
github.hook.wrap('request', async (request, options) => {
|
||||
// Requests to the /rate_limit endpoint do not count against the rate limit.
|
||||
if (options.url == '/rate_limit') return request(options)
|
||||
// Search requests are in a different resource group, which allows 30 requests / minute.
|
||||
// We do less than a handful each run, so not implementing throttling for now.
|
||||
if (options.url.startsWith('/search/')) return request(options)
|
||||
stats.requests++
|
||||
if (['POST', 'PUT', 'PATCH', 'DELETE'].includes(options.method))
|
||||
return writeLimits.schedule(request.bind(null, options))
|
||||
else return allLimits.schedule(request.bind(null, options))
|
||||
})
|
||||
|
||||
async function updateReservoir() {
|
||||
let response
|
||||
try {
|
||||
response = await github.rest.rateLimit.get()
|
||||
} catch (err) {
|
||||
core.error(`Failed updating reservoir:\n${err}`)
|
||||
// Keep retrying on failed rate limit requests instead of exiting the script early.
|
||||
return
|
||||
}
|
||||
// Always keep 1000 spare requests for other jobs to do their regular duty.
|
||||
// They normally use below 100, so 1000 is *plenty* of room to work with.
|
||||
const reservoir = Math.max(0, response.data.resources.core.remaining - 1000)
|
||||
core.info(`Updating reservoir to: ${reservoir}`)
|
||||
allLimits.updateSettings({ reservoir })
|
||||
}
|
||||
await updateReservoir()
|
||||
// Update remaining requests every minute to account for other jobs running in parallel.
|
||||
const reservoirUpdater = setInterval(updateReservoir, 60 * 1000)
|
||||
|
||||
async function handlePullRequest(item) {
|
||||
async function handlePullRequest({ item, stats }) {
|
||||
const log = (k, v) => core.info(`PR #${item.number} - ${k}: ${v}`)
|
||||
|
||||
const pull_number = item.number
|
||||
@@ -221,7 +172,7 @@ module.exports = async function ({ github, context, core, dry }) {
|
||||
return prLabels
|
||||
}
|
||||
|
||||
async function handle(item) {
|
||||
async function handle({ item, stats }) {
|
||||
try {
|
||||
const log = (k, v, skip) => {
|
||||
core.info(`#${item.number} - ${k}: ${v}` + (skip ? ' (skipped)' : ''))
|
||||
@@ -237,7 +188,7 @@ module.exports = async function ({ github, context, core, dry }) {
|
||||
|
||||
if (item.pull_request || context.payload.pull_request) {
|
||||
stats.prs++
|
||||
Object.assign(itemLabels, await handlePullRequest(item))
|
||||
Object.assign(itemLabels, await handlePullRequest({ item, stats }))
|
||||
} else {
|
||||
stats.issues++
|
||||
}
|
||||
@@ -326,9 +277,9 @@ module.exports = async function ({ github, context, core, dry }) {
|
||||
}
|
||||
}
|
||||
|
||||
try {
|
||||
await withRateLimit({ github, core }, async (stats) => {
|
||||
if (context.payload.pull_request) {
|
||||
await handle(context.payload.pull_request)
|
||||
await handle({ item: context.payload.pull_request, stats })
|
||||
} else {
|
||||
const lastRun = (
|
||||
await github.rest.actions.listWorkflowRuns({
|
||||
@@ -447,17 +398,11 @@ module.exports = async function ({ github, context, core, dry }) {
|
||||
arr.findIndex((firstItem) => firstItem.number == thisItem.number),
|
||||
)
|
||||
|
||||
;(await Promise.allSettled(items.map(handle)))
|
||||
;(await Promise.allSettled(items.map((item) => handle({ item, stats }))))
|
||||
.filter(({ status }) => status == 'rejected')
|
||||
.map(({ reason }) =>
|
||||
core.setFailed(`${reason.message}\n${reason.cause.stack}`),
|
||||
)
|
||||
|
||||
core.notice(
|
||||
`Processed ${stats.prs} PRs, ${stats.issues} Issues, made ${stats.requests + stats.artifacts} API requests and downloaded ${stats.artifacts} artifacts.`,
|
||||
)
|
||||
}
|
||||
} finally {
|
||||
clearInterval(reservoirUpdater)
|
||||
}
|
||||
})
|
||||
}
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "labels",
|
||||
"name": "github-script",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
@@ -7,7 +7,8 @@
|
||||
"dependencies": {
|
||||
"@actions/artifact": "2.3.2",
|
||||
"@actions/github": "6.0.1",
|
||||
"bottleneck": "2.19.5"
|
||||
"bottleneck": "2.19.5",
|
||||
"commander": "14.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@actions/artifact": {
|
||||
@@ -950,6 +951,15 @@
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/commander": {
|
||||
"version": "14.0.0",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-14.0.0.tgz",
|
||||
"integrity": "sha512-2uM9rYjPvyq39NwLRqaiLtWHyDC1FvryJDa2ATTVims5YAS4PupsEQsDvP14FqhFr0P49CYDugi59xaxJlTXRA==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=20"
|
||||
}
|
||||
},
|
||||
"node_modules/compress-commons": {
|
||||
"version": "6.0.2",
|
||||
"resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-6.0.2.tgz",
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"dependencies": {
|
||||
"@actions/artifact": "2.3.2",
|
||||
"@actions/github": "6.0.1",
|
||||
"bottleneck": "2.19.5"
|
||||
"bottleneck": "2.19.5",
|
||||
"commander": "14.0.0"
|
||||
}
|
||||
}
|
||||
Executable
+67
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env -S node --import ./run
|
||||
import { execSync } from 'node:child_process'
|
||||
import { mkdtempSync, rmSync } from 'node:fs'
|
||||
import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
import { program } from 'commander'
|
||||
import { getOctokit } from '@actions/github'
|
||||
|
||||
async function run(action, owner, repo, pull_number, dry) {
|
||||
const token = execSync('gh auth token', { encoding: 'utf-8' }).trim()
|
||||
|
||||
const github = getOctokit(token)
|
||||
|
||||
const payload = !pull_number ? {} : {
|
||||
pull_request: (await github.rest.pulls.get({
|
||||
owner,
|
||||
repo,
|
||||
pull_number,
|
||||
})).data
|
||||
}
|
||||
|
||||
const tmp = mkdtempSync(join(tmpdir(), 'github-script-'))
|
||||
try {
|
||||
process.env.GITHUB_WORKSPACE = tmp
|
||||
process.chdir(tmp)
|
||||
|
||||
await action({
|
||||
github,
|
||||
context: {
|
||||
payload,
|
||||
repo: {
|
||||
owner,
|
||||
repo,
|
||||
},
|
||||
},
|
||||
core: {
|
||||
getInput() {
|
||||
return token
|
||||
},
|
||||
error: console.error,
|
||||
info: console.log,
|
||||
notice: console.log,
|
||||
setFailed(msg) {
|
||||
console.error(msg)
|
||||
process.exitCode = 1
|
||||
},
|
||||
},
|
||||
dry,
|
||||
})
|
||||
} finally {
|
||||
rmSync(tmp, { recursive: true })
|
||||
}
|
||||
}
|
||||
|
||||
program
|
||||
.command('labels')
|
||||
.description('Manage labels on pull requests.')
|
||||
.argument('<owner>', 'Owner of the GitHub repository to label (Example: NixOS)')
|
||||
.argument('<repo>', 'Name of the GitHub repository to label (Example: nixpkgs)')
|
||||
.argument('[pr]', 'Number of the Pull Request to label')
|
||||
.option('--no-dry', 'Make actual modifications')
|
||||
.action(async (owner, repo, pr, options) => {
|
||||
const labels = (await import('./labels.js')).default
|
||||
run(labels, owner, repo, pr, options.dry)
|
||||
})
|
||||
|
||||
await program.parse()
|
||||
@@ -5,12 +5,14 @@
|
||||
|
||||
pkgs.callPackage (
|
||||
{
|
||||
mkShell,
|
||||
gh,
|
||||
importNpmLock,
|
||||
mkShell,
|
||||
nodejs,
|
||||
}:
|
||||
mkShell {
|
||||
packages = [
|
||||
gh
|
||||
importNpmLock.hooks.linkNodeModulesHook
|
||||
nodejs
|
||||
];
|
||||
@@ -0,0 +1,61 @@
|
||||
module.exports = async function ({ github, core }, callback) {
|
||||
const Bottleneck = require('bottleneck')
|
||||
|
||||
const stats = {
|
||||
issues: 0,
|
||||
prs: 0,
|
||||
requests: 0,
|
||||
artifacts: 0,
|
||||
}
|
||||
|
||||
// Rate-Limiting and Throttling, see for details:
|
||||
// https://github.com/octokit/octokit.js/issues/1069#throttling
|
||||
// https://docs.github.com/en/rest/using-the-rest-api/best-practices-for-using-the-rest-api
|
||||
const allLimits = new Bottleneck({
|
||||
// Avoid concurrent requests
|
||||
maxConcurrent: 1,
|
||||
// Will be updated with first `updateReservoir()` call below.
|
||||
reservoir: 0,
|
||||
})
|
||||
// Pause between mutative requests
|
||||
const writeLimits = new Bottleneck({ minTime: 1000 }).chain(allLimits)
|
||||
github.hook.wrap('request', async (request, options) => {
|
||||
// Requests to the /rate_limit endpoint do not count against the rate limit.
|
||||
if (options.url == '/rate_limit') return request(options)
|
||||
// Search requests are in a different resource group, which allows 30 requests / minute.
|
||||
// We do less than a handful each run, so not implementing throttling for now.
|
||||
if (options.url.startsWith('/search/')) return request(options)
|
||||
stats.requests++
|
||||
if (['POST', 'PUT', 'PATCH', 'DELETE'].includes(options.method))
|
||||
return writeLimits.schedule(request.bind(null, options))
|
||||
else return allLimits.schedule(request.bind(null, options))
|
||||
})
|
||||
|
||||
async function updateReservoir() {
|
||||
let response
|
||||
try {
|
||||
response = await github.rest.rateLimit.get()
|
||||
} catch (err) {
|
||||
core.error(`Failed updating reservoir:\n${err}`)
|
||||
// Keep retrying on failed rate limit requests instead of exiting the script early.
|
||||
return
|
||||
}
|
||||
// Always keep 1000 spare requests for other jobs to do their regular duty.
|
||||
// They normally use below 100, so 1000 is *plenty* of room to work with.
|
||||
const reservoir = Math.max(0, response.data.resources.core.remaining - 1000)
|
||||
core.info(`Updating reservoir to: ${reservoir}`)
|
||||
allLimits.updateSettings({ reservoir })
|
||||
}
|
||||
await updateReservoir()
|
||||
// Update remaining requests every minute to account for other jobs running in parallel.
|
||||
const reservoirUpdater = setInterval(updateReservoir, 60 * 1000)
|
||||
|
||||
try {
|
||||
await callback(stats)
|
||||
} finally {
|
||||
clearInterval(reservoirUpdater)
|
||||
core.notice(
|
||||
`Processed ${stats.prs} PRs, ${stats.issues} Issues, made ${stats.requests + stats.artifacts} API requests and downloaded ${stats.artifacts} artifacts.`,
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
# TODO: Move to <top-level>/.editorconfig, once ci/.editorconfig has made its way through staging.
|
||||
[*.cjs]
|
||||
indent_style = space
|
||||
indent_size = 2
|
||||
@@ -1,4 +0,0 @@
|
||||
To test the labeler locally:
|
||||
- Provide `gh` on `PATH` and make sure it's authenticated.
|
||||
- Enter `nix-shell` in `./ci/labels`.
|
||||
- Run `./run.js OWNER REPO`, where OWNER is your username or "NixOS" and REPO the name of your fork or "nixpkgs".
|
||||
@@ -1,45 +0,0 @@
|
||||
#!/usr/bin/env node
|
||||
import { execSync } from 'node:child_process'
|
||||
import { mkdtempSync, rmSync } from 'node:fs'
|
||||
import { tmpdir } from 'node:os'
|
||||
import { join } from 'node:path'
|
||||
import { getOctokit } from '@actions/github'
|
||||
import labels from './labels.cjs'
|
||||
|
||||
if (process.argv.length !== 4)
|
||||
throw new Error('Call this with exactly two arguments: ./run.js OWNER REPO')
|
||||
const [, , owner, repo] = process.argv
|
||||
|
||||
const token = execSync('gh auth token', { encoding: 'utf-8' }).trim()
|
||||
|
||||
const tmp = mkdtempSync(join(tmpdir(), 'labels-'))
|
||||
try {
|
||||
process.env.GITHUB_WORKSPACE = tmp
|
||||
process.chdir(tmp)
|
||||
|
||||
await labels({
|
||||
github: getOctokit(token),
|
||||
context: {
|
||||
payload: {},
|
||||
repo: {
|
||||
owner,
|
||||
repo,
|
||||
},
|
||||
},
|
||||
core: {
|
||||
getInput() {
|
||||
return token
|
||||
},
|
||||
error: console.error,
|
||||
info: console.log,
|
||||
notice: console.log,
|
||||
setFailed(msg) {
|
||||
console.error(msg)
|
||||
process.exitCode = 1
|
||||
},
|
||||
},
|
||||
dry: true,
|
||||
})
|
||||
} finally {
|
||||
rmSync(tmp, { recursive: true })
|
||||
}
|
||||
@@ -443,8 +443,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "...";
|
||||
fetcherVersion = 2;
|
||||
hash = "...";
|
||||
};
|
||||
})
|
||||
```
|
||||
@@ -568,8 +568,8 @@ This is the version of the output of `pnpm.fetchDeps`, if you haven't set it alr
|
||||
# ...
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
# ...
|
||||
hash = "..."; # you can use your already set hash here
|
||||
fetcherVersion = 1;
|
||||
hash = "..."; # you can use your already set hash here
|
||||
};
|
||||
}
|
||||
```
|
||||
@@ -581,8 +581,8 @@ After upgrading to a newer `fetcherVersion`, you need to regenerate the hash:
|
||||
# ...
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
# ...
|
||||
hash = "..."; # clear this hash and generate a new one
|
||||
fetcherVersion = 2;
|
||||
hash = "..."; # clear this hash and generate a new one
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
#!nix-shell -i python3 -p "python3.withPackages(ps: [ ps.beautifulsoup4 ps.click ps.httpx ps.jinja2 ps.packaging ps.pyyaml ])" nix-update
|
||||
import base64
|
||||
import binascii
|
||||
import hashlib
|
||||
import json
|
||||
import pathlib
|
||||
import subprocess
|
||||
@@ -112,8 +113,17 @@ def main(pkgset: str, version: str, nixpkgs: pathlib.Path, sources_url: str | No
|
||||
|
||||
url = urljoin(sources_url, link.attrs["href"])
|
||||
|
||||
hash = client.get(url + ".sha256").text.split(" ", maxsplit=1)[0]
|
||||
assert hash
|
||||
hash = client.get(url + ".sha256").text.strip()
|
||||
|
||||
if hash == "Hash type not supported":
|
||||
print(f"{url} missing hash on CDN, downloading...")
|
||||
hasher = hashlib.sha256()
|
||||
with client.stream("GET", url, follow_redirects=True) as r:
|
||||
for data in r.iter_bytes():
|
||||
hasher.update(data)
|
||||
hash = hasher.hexdigest()
|
||||
else:
|
||||
hash = hash.split(" ", maxsplit=1)[0]
|
||||
|
||||
if existing := results.get(project_name):
|
||||
old_version = existing["version"]
|
||||
|
||||
@@ -125,6 +125,11 @@
|
||||
- `amdgpu` kernel driver overdrive mode can now be enabled by setting [hardware.amdgpu.overdrive.enable](#opt-hardware.amdgpu.overdrive.enable) and customized through [hardware.amdgpu.overdrive.ppfeaturemask](#opt-hardware.amdgpu.overdrive.ppfeaturemask).
|
||||
This allows for fine-grained control over the GPU's performance and maybe required by overclocking softwares like Corectrl and Lact. These new options replace old options such as {option}`programs.corectrl.gpuOverclock.enable` and {option}`programs.tuxclocker.enableAMD`.
|
||||
|
||||
- `services.varnish.http_address` has been superseeded by `services.varnish.listen` which is now
|
||||
structured config for all of varnish's `-a` variations.
|
||||
|
||||
- [](#opt-services.gnome.gnome-keyring.enable) does not ship with an SSH agent anymore, as this is now handled by the `gcr_4` package instead of `gnome-keyring`. A new module has been added to support this, under [](#opt-services.gnome.gcr-ssh-agent.enable) (its default value has been set to [](#opt-services.gnome.gnome-keyring.enable) to ensure a smooth transition). See the [relevant upstream PR](https://gitlab.gnome.org/GNOME/gcr/-/merge_requests/67) for more details.
|
||||
|
||||
- The `nettools` package (ifconfig, arp, mii-tool, netstat, route) is not installed by default anymore. The suite is unmaintained and users should migrate to `iproute2` and `ethtool` instead.
|
||||
|
||||
- `sparkleshare` has been removed as it no longer builds and has been abandoned upstream.
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.hardware.kryoflux;
|
||||
|
||||
in
|
||||
{
|
||||
options.hardware.kryoflux = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Enables kryoflux udev rules, ensures 'floppy' group exists. This is a
|
||||
prerequisite to using devices supported by kryoflux without being root,
|
||||
since kryoflux device descriptors will be owned by floppy through udev.
|
||||
'';
|
||||
};
|
||||
package = lib.mkPackageOption pkgs "kryoflux" { };
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
services.udev.packages = [ cfg.package ];
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
users.groups.floppy = { };
|
||||
};
|
||||
|
||||
meta.maintainers = with lib.maintainers; [ matthewcroughan ];
|
||||
}
|
||||
@@ -121,6 +121,7 @@ in
|
||||
|
||||
users.users.spamd = {
|
||||
description = "Spam Assassin Daemon";
|
||||
home = "/var/lib/spamassassin";
|
||||
uid = config.ids.uids.spamd;
|
||||
group = "spamd";
|
||||
};
|
||||
|
||||
@@ -6,6 +6,16 @@
|
||||
}:
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
types
|
||||
mkOption
|
||||
hasPrefix
|
||||
concatMapStringsSep
|
||||
optionalString
|
||||
concatMap
|
||||
;
|
||||
inherit (builtins) isNull;
|
||||
|
||||
cfg = config.services.varnish;
|
||||
|
||||
# Varnish has very strong opinions and very complicated code around handling
|
||||
@@ -26,6 +36,91 @@ let
|
||||
else
|
||||
"/var/run/varnishd";
|
||||
|
||||
# from --help:
|
||||
# -a [<name>=]address[:port][,proto] # HTTP listen address and port
|
||||
# [,user=<u>][,group=<g>] # Can be specified multiple times.
|
||||
# [,mode=<m>] # default: ":80,HTTP"
|
||||
# # Proto can be "PROXY" or "HTTP" (default)
|
||||
# # user, group and mode set permissions for
|
||||
# # a Unix domain socket.
|
||||
commandLineAddresses =
|
||||
(concatMapStringsSep " " (
|
||||
a:
|
||||
"-a "
|
||||
+ optionalString (!isNull a.name) "${a.name}="
|
||||
+ a.address
|
||||
+ optionalString (!isNull a.port) ":${toString a.port}"
|
||||
+ optionalString (!isNull a.proto) ",${a.proto}"
|
||||
+ optionalString (!isNull a.user) ",user=${a.user}"
|
||||
+ optionalString (!isNull a.group) ",group=${a.group}"
|
||||
+ optionalString (!isNull a.mode) ",mode=${a.mode}"
|
||||
) cfg.listen)
|
||||
+ lib.optionalString (!isNull cfg.http_address) " -a ${cfg.http_address}";
|
||||
addressSubmodule = types.submodule {
|
||||
options = {
|
||||
name = mkOption {
|
||||
description = "Name is referenced in logs. If name is not specified, 'a0', 'a1', etc. is used.";
|
||||
default = null;
|
||||
type = with types; nullOr str;
|
||||
};
|
||||
address = mkOption {
|
||||
description = ''
|
||||
If given an IP address, it can be a host name ("localhost"), an IPv4 dotted-quad
|
||||
("127.0.0.1") or an IPv6 address enclosed in square brackets ("[::1]").
|
||||
|
||||
(VCL4.1 and higher) If given an absolute Path ("/path/to/listen.sock") or "@"
|
||||
followed by the name of an abstract socket ("@myvarnishd") accept connections
|
||||
on a Unix domain socket.
|
||||
|
||||
The user, group and mode sub-arguments may be used to specify the permissions
|
||||
of the socket file. These sub-arguments do not apply to abstract sockets.
|
||||
'';
|
||||
type = types.str;
|
||||
};
|
||||
port = mkOption {
|
||||
description = "The port to use for IP sockets. If port is not specified, port 80 (http) is used.";
|
||||
default = null;
|
||||
type = with types; nullOr int;
|
||||
};
|
||||
proto = mkOption {
|
||||
description = "PROTO can be 'HTTP' (the default) or 'PROXY'. Both version 1 and 2 of the proxy protocol can be used.";
|
||||
type = types.enum [
|
||||
"HTTP"
|
||||
"PROXY"
|
||||
];
|
||||
default = "HTTP";
|
||||
};
|
||||
user = mkOption {
|
||||
description = "User name who owns the socket file.";
|
||||
default = null;
|
||||
type = with lib.types; nullOr str;
|
||||
};
|
||||
group = mkOption {
|
||||
description = "Group name who owns the socket file.";
|
||||
default = null;
|
||||
type = with lib.types; nullOr str;
|
||||
};
|
||||
mode = mkOption {
|
||||
description = "Permission of the socket file (3-digit octal value).";
|
||||
default = null;
|
||||
type = with types; nullOr str;
|
||||
};
|
||||
};
|
||||
};
|
||||
checkedAddressModule = types.addCheck addressSubmodule (
|
||||
m:
|
||||
(
|
||||
if ((hasPrefix "@" m.address) || (hasPrefix "/" m.address)) then
|
||||
# this is a unix socket
|
||||
(m.port != null)
|
||||
else
|
||||
# this is not a path-based unix socket
|
||||
if !(hasPrefix "/" m.address) && (m.group != null) || (m.user != null) || (m.mode != null) then
|
||||
false
|
||||
else
|
||||
true
|
||||
)
|
||||
);
|
||||
commandLine =
|
||||
"-f ${pkgs.writeText "default.vcl" cfg.config}"
|
||||
+
|
||||
@@ -54,13 +149,23 @@ in
|
||||
package = lib.mkPackageOption pkgs "varnish" { };
|
||||
|
||||
http_address = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "*:6081";
|
||||
type = with lib.types; nullOr str;
|
||||
default = null;
|
||||
description = ''
|
||||
HTTP listen address and port.
|
||||
'';
|
||||
};
|
||||
|
||||
listen = lib.mkOption {
|
||||
description = "Accept for client requests on the specified listen addresses.";
|
||||
type = lib.types.listOf checkedAddressModule;
|
||||
defaultText = lib.literalExpression ''[ { address="*"; port=6081; } ]'';
|
||||
default = lib.optional (isNull cfg.http_address) {
|
||||
address = "*";
|
||||
port = 6081;
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkOption {
|
||||
type = lib.types.lines;
|
||||
description = ''
|
||||
@@ -97,7 +202,7 @@ in
|
||||
serviceConfig = {
|
||||
Type = "simple";
|
||||
PermissionsStartOnly = true;
|
||||
ExecStart = "${cfg.package}/sbin/varnishd -a ${cfg.http_address} -n ${stateDir} -F ${cfg.extraCommandLine} ${commandLine}";
|
||||
ExecStart = "${cfg.package}/sbin/varnishd ${commandLineAddresses} -n ${stateDir} -F ${cfg.extraCommandLine} ${commandLine}";
|
||||
Restart = "always";
|
||||
RestartSec = "5s";
|
||||
User = "varnish";
|
||||
@@ -118,6 +223,21 @@ in
|
||||
'')
|
||||
];
|
||||
|
||||
assertions = concatMap (m: [
|
||||
{
|
||||
assertion = (hasPrefix "/" m.address) || (hasPrefix "@" m.address) -> m.port == null;
|
||||
message = "Listen ports must not be specified with UNIX sockets: ${builtins.toJSON m}";
|
||||
}
|
||||
{
|
||||
assertion = !(hasPrefix "/" m.address) -> m.user == null && m.group == null && m.mode == null;
|
||||
message = "Abstract UNIX sockets or IP sockets can not be used with user, group, and mode settings: ${builtins.toJSON m}";
|
||||
}
|
||||
]) cfg.listen;
|
||||
|
||||
warnings =
|
||||
lib.optional (!isNull cfg.http_address)
|
||||
"The option `services.varnish.http_address` is deprecated. Use `services.varnish.listen` instead.";
|
||||
|
||||
users.users.varnish = {
|
||||
group = "varnish";
|
||||
uid = config.ids.uids.varnish;
|
||||
|
||||
@@ -274,7 +274,7 @@ def install_bootloader() -> None:
|
||||
profiles = [('system', get_gens())]
|
||||
|
||||
for profile in get_profiles():
|
||||
profiles += (profile, get_gens(profile))
|
||||
profiles += [(profile, get_gens(profile))]
|
||||
|
||||
timeout = config('timeout')
|
||||
editor_enabled = 'yes' if config('enableEditor') else 'no'
|
||||
|
||||
+49
-3
@@ -10,7 +10,12 @@ in
|
||||
|
||||
nodes = {
|
||||
varnish =
|
||||
{ config, pkgs, ... }:
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
{
|
||||
services.nix-serve = {
|
||||
enable = true;
|
||||
@@ -19,9 +24,29 @@ in
|
||||
services.varnish = {
|
||||
inherit package;
|
||||
enable = true;
|
||||
http_address = "0.0.0.0:80";
|
||||
http_address = "0.0.0.0:81";
|
||||
listen = [
|
||||
{
|
||||
address = "0.0.0.0";
|
||||
port = 80;
|
||||
proto = "HTTP";
|
||||
}
|
||||
{
|
||||
name = "proxyport";
|
||||
address = "0.0.0.0";
|
||||
port = 8080;
|
||||
proto = "PROXY";
|
||||
}
|
||||
{ address = "@asdf"; }
|
||||
{
|
||||
address = "/run/varnishd/client.http.sock";
|
||||
user = "varnish";
|
||||
group = "varnish";
|
||||
mode = "660";
|
||||
}
|
||||
];
|
||||
config = ''
|
||||
vcl 4.0;
|
||||
vcl 4.1;
|
||||
|
||||
backend nix-serve {
|
||||
.host = "127.0.0.1";
|
||||
@@ -32,6 +57,26 @@ in
|
||||
|
||||
networking.firewall.allowedTCPPorts = [ 80 ];
|
||||
system.extraDependencies = [ testPath ];
|
||||
|
||||
assertions =
|
||||
map
|
||||
(
|
||||
pattern:
|
||||
let
|
||||
cmdline = config.systemd.services.varnish.serviceConfig.ExecStart;
|
||||
in
|
||||
{
|
||||
assertion = lib.hasInfix pattern cmdline;
|
||||
message = "Address argument `${pattern}` missing in commandline `${cmdline}`.";
|
||||
}
|
||||
)
|
||||
[
|
||||
" -a 0.0.0.0:80,HTTP "
|
||||
" -a proxyport=0.0.0.0:8080,PROXY "
|
||||
" -a @asdf,HTTP "
|
||||
" -a /run/varnishd/client.http.sock,HTTP,user=varnish,group=varnish,mode=660 "
|
||||
" -a 0.0.0.0:81 "
|
||||
];
|
||||
};
|
||||
|
||||
client =
|
||||
@@ -48,6 +93,7 @@ in
|
||||
start_all()
|
||||
varnish.wait_for_open_port(80)
|
||||
|
||||
|
||||
client.wait_until_succeeds("curl -f http://varnish/nix-cache-info");
|
||||
|
||||
client.wait_until_succeeds("nix-store -r ${testPath}")
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
|
||||
services.xserver.desktopManager.xfce.enable = true;
|
||||
environment.systemPackages = [ pkgs.xfce.xfce4-whiskermenu-plugin ];
|
||||
|
||||
programs.thunar.plugins = [ pkgs.xfce.thunar-archive-plugin ];
|
||||
};
|
||||
|
||||
enableOCR = true;
|
||||
|
||||
@@ -24,8 +24,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-xIQyTetHU37gTxCcQp4VCqzGdIfVQGy/aORCVba6YQ0=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-xIQyTetHU37gTxCcQp4VCqzGdIfVQGy/aORCVba6YQ0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,8 +6,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "cwtools-vscode";
|
||||
publisher = "tboby";
|
||||
version = "0.10.25";
|
||||
hash = "sha256-TcnS4Cwn+V9hwScpLgUK5u8Jfm89EBv+koUOi1bB0DM=";
|
||||
version = "0.10.26";
|
||||
hash = "sha256-1ZfmcF87LyRxCbQvVX21m1yFu+7QeDCofKXEHj5W8DA=";
|
||||
};
|
||||
meta = {
|
||||
description = "Paradox Language Features for Visual Studio Code";
|
||||
|
||||
@@ -91,9 +91,9 @@ rec {
|
||||
|
||||
nomad_1_10 = generic {
|
||||
buildGoModule = buildGo124Module;
|
||||
version = "1.10.2";
|
||||
hash = "sha256-7i/tMQwaEmLGXNarrdPzmorv+SHrxCzeaF3BI9Jjhwg=";
|
||||
vendorHash = "sha256-yq8xQ9wThPK/X9/lEHD8FCXq1Mrz0lO6UvrP2ipXMnw=";
|
||||
version = "1.10.3";
|
||||
hash = "sha256-sDOo7b32H/d5OJ6CRyga1rZZk55bFTi4ynHL/aIH87w=";
|
||||
vendorHash = "sha256-bpCnpeRk329vUd9e6x7iCh+1ouSGd4o4Hq79K0qchJ8=";
|
||||
license = lib.licenses.bsl11;
|
||||
passthru.tests.nomad = nixosTests.nomad;
|
||||
preCheck = ''
|
||||
|
||||
@@ -326,13 +326,13 @@
|
||||
"vendorHash": "sha256-ZCMSmOCPEMxCSpl3DjIUGPj1W/KNJgyjtHpmQ19JquA="
|
||||
},
|
||||
"datadog": {
|
||||
"hash": "sha256-FYgjffK21Z/a7wpke5/Um0f8NiDfs7Xf4l7/f3i41+g=",
|
||||
"hash": "sha256-u+iiWStjO2OFMkQp8Skynb4seTK61ETSKrEP+6o16LA=",
|
||||
"homepage": "https://registry.terraform.io/providers/DataDog/datadog",
|
||||
"owner": "DataDog",
|
||||
"repo": "terraform-provider-datadog",
|
||||
"rev": "v3.66.0",
|
||||
"rev": "v3.67.0",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-9YkSNGNcdMBLJZSlMTGoDrLZFTeGSTfhX1H8ub77Ebk="
|
||||
"vendorHash": "sha256-fLdJxYuN4p0ZwXUXcN6BtATcwVg9asgdjHg9nOPcxK4="
|
||||
},
|
||||
"deno": {
|
||||
"hash": "sha256-7IvJrhXMeAmf8e21QBdYNSJyVMEzLpat4Tm4zHWglW8=",
|
||||
@@ -624,11 +624,11 @@
|
||||
"vendorHash": "sha256-SsEWNIBkgcdTlSrB4hIvRmhMv2eJ2qQaPUmiN09A+NM="
|
||||
},
|
||||
"huaweicloud": {
|
||||
"hash": "sha256-v0UqXIK4SPGouETUWSQI1K1hpsPMyUuEpLQ++Gs4+yk=",
|
||||
"hash": "sha256-jXppJtVMPpipXbEhgenVtFP5YxwlQzekquRoZmgoP0Q=",
|
||||
"homepage": "https://registry.terraform.io/providers/huaweicloud/huaweicloud",
|
||||
"owner": "huaweicloud",
|
||||
"repo": "terraform-provider-huaweicloud",
|
||||
"rev": "v1.76.1",
|
||||
"rev": "v1.76.4",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": null
|
||||
},
|
||||
|
||||
@@ -22,14 +22,14 @@
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "protonvpn-gui";
|
||||
version = "4.9.6";
|
||||
version = "4.9.7";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ProtonVPN";
|
||||
repo = "proton-vpn-gtk-app";
|
||||
tag = "${version}";
|
||||
hash = "sha256-Undf3qSClcRa1e9f6B/1hLPIjc2KPG745AXxYHQA0nE=";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-xpMXpYLLui+1bjK72VPhUT6T/sYpoqN2Jz6sczKJO5U=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -113,6 +113,12 @@ stdenv.mkDerivation {
|
||||
)
|
||||
++ [
|
||||
./patches/256-color-resources.patch
|
||||
(fetchPatchFromAUR {
|
||||
name = "7-bit-queries.patch";
|
||||
package = "rxvt-unicode-truecolor-wide-glyphs";
|
||||
rev = "61ed186890a2bf37585e4704a095be61e6504ac6";
|
||||
sha256 = "1xpv6g3bhxq5gp40k3rp8yjp4xrw7dr2g9sfkdmj0gi3rr0myx46";
|
||||
})
|
||||
]
|
||||
++ lib.optional (perlSupport && lib.versionAtLeast perl.version "5.38") (fetchpatch {
|
||||
name = "perl538-locale-c.patch";
|
||||
|
||||
@@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "obs-shaderfilter";
|
||||
version = "2.5.0";
|
||||
version = "2.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "exeldro";
|
||||
repo = "obs-shaderfilter";
|
||||
rev = version;
|
||||
sha256 = "sha256-HJFgGicOtEZMMJyAkwgHCvWPoj00C6YGU9NwagD4Fpw=";
|
||||
sha256 = "sha256-1RRGXAzP7BIwJJMmXSknPDtHxXZex9SqDDVbWOE43Yk=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
||||
@@ -367,13 +367,13 @@ rec {
|
||||
# Get revisions from
|
||||
# https://github.com/moby/moby/tree/${version}/hack/dockerfile/install/*
|
||||
docker_25 = callPackage dockerGen rec {
|
||||
version = "25.0.10";
|
||||
version = "25.0.11";
|
||||
# Upstream forgot to tag release
|
||||
# https://github.com/docker/cli/issues/5789
|
||||
cliRev = "43987fca488a535d810c429f75743d8c7b63bf4f";
|
||||
cliHash = "sha256-OwufdfuUPbPtgqfPeiKrQVkOOacU2g4ommHb770gV40=";
|
||||
mobyRev = "v${version}";
|
||||
mobyHash = "sha256-57iXL+QYtbEz099yOTR4k/2Z7CT08OAkQ3kVJSmsa/U=";
|
||||
mobyHash = "sha256-vHHi0/sX9fm83gyUjDpRYTGV9h18IVia1oSmj4n31nc=";
|
||||
runcRev = "v1.2.5";
|
||||
runcHash = "sha256-J/QmOZxYnMPpzm87HhPTkYdt+fN+yeSUu2sv6aUeTY4=";
|
||||
containerdRev = "v1.7.27";
|
||||
@@ -383,11 +383,11 @@ rec {
|
||||
};
|
||||
|
||||
docker_28 = callPackage dockerGen rec {
|
||||
version = "28.2.2";
|
||||
version = "28.3.2";
|
||||
cliRev = "v${version}";
|
||||
cliHash = "sha256-ZaKG4H8BqIzgs9OFktH9bjHSf9exAlh5kPCGP021BWI=";
|
||||
cliHash = "sha256-LsV9roOPw0LccvBUeF3bY014OwG6QpnVsLf+dqKyvsg=";
|
||||
mobyRev = "v${version}";
|
||||
mobyHash = "sha256-Y2yP2NBJLrI83iHe2EoA7/cXiQifrCkUKlwJhINKBXE=";
|
||||
mobyHash = "sha256-YfdnCAc9NgLTuvxLHGhTPdWqXz9VSVsQsfzLD3YER3g=";
|
||||
runcRev = "v1.2.6";
|
||||
runcHash = "sha256-XMN+YKdQOQeOLLwvdrC6Si2iAIyyHD5RgZbrOHrQE/g=";
|
||||
containerdRev = "v1.7.27";
|
||||
|
||||
@@ -1,28 +1,89 @@
|
||||
{
|
||||
lib,
|
||||
runCommand,
|
||||
srcOnly,
|
||||
hello,
|
||||
emptyDirectory,
|
||||
glibc,
|
||||
zlib,
|
||||
stdenv,
|
||||
testers,
|
||||
}:
|
||||
|
||||
let
|
||||
emptySrc = srcOnly emptyDirectory;
|
||||
glibcSrc = srcOnly glibc;
|
||||
zlibSrc = srcOnly zlib;
|
||||
|
||||
# It can be invoked in a number of ways. Let's make sure they're equivalent.
|
||||
zlibSrcDrvAttrs = srcOnly zlib.drvAttrs;
|
||||
# zlibSrcFreeform = # ???;
|
||||
helloSrc = srcOnly hello;
|
||||
helloSrcDrvAttrs = srcOnly hello.drvAttrs;
|
||||
|
||||
# The srcOnly <drv> invocation leaks a lot of attrs into the srcOnly derivation,
|
||||
# so for comparing with the freeform invocation, we need to make a selection.
|
||||
# Otherwise, we'll be comparing against whatever attribute the fancy hello drv
|
||||
# has.
|
||||
helloDrvSimple = stdenv.mkDerivation {
|
||||
inherit (hello)
|
||||
name
|
||||
pname
|
||||
version
|
||||
src
|
||||
patches
|
||||
;
|
||||
};
|
||||
helloDrvSimpleSrc = srcOnly helloDrvSimple;
|
||||
helloDrvSimpleSrcFreeform = srcOnly (
|
||||
{
|
||||
inherit (helloDrvSimple)
|
||||
name
|
||||
pname
|
||||
version
|
||||
src
|
||||
patches
|
||||
stdenv
|
||||
;
|
||||
}
|
||||
# __impureHostDeps get duplicated in helloDrvSimpleSrc (on darwin)
|
||||
# This is harmless, but fails the test for what is arguably an
|
||||
# unrelated non-problem, so we just work around it here.
|
||||
# The inclusion of __impureHostDeps really shouldn't be required,
|
||||
# and should be removed from this test.
|
||||
// lib.optionalAttrs (helloDrvSimple ? __impureHostDeps) {
|
||||
inherit (helloDrvSimple) __impureHostDeps;
|
||||
}
|
||||
);
|
||||
|
||||
in
|
||||
|
||||
runCommand "srcOnly-tests" { } ''
|
||||
# Test that emptySrc is empty
|
||||
if [ -n "$(ls -A ${emptySrc})" ]; then
|
||||
echo "emptySrc is not empty"
|
||||
exit 1
|
||||
fi
|
||||
runCommand "srcOnly-tests"
|
||||
{
|
||||
moreTests = [
|
||||
(testers.testEqualDerivation "zlibSrcDrvAttrs == zlibSrc" zlibSrcDrvAttrs zlibSrc)
|
||||
# (testers.testEqualDerivation
|
||||
# "zlibSrcFreeform == zlibSrc"
|
||||
# zlibSrcFreeform
|
||||
# zlibSrc)
|
||||
(testers.testEqualDerivation "helloSrcDrvAttrs == helloSrc" helloSrcDrvAttrs helloSrc)
|
||||
(testers.testEqualDerivation "helloDrvSimpleSrcFreeform == helloDrvSimpleSrc"
|
||||
helloDrvSimpleSrcFreeform
|
||||
helloDrvSimpleSrc
|
||||
)
|
||||
];
|
||||
}
|
||||
''
|
||||
# Test that emptySrc is empty
|
||||
if [ -n "$(ls -A ${emptySrc})" ]; then
|
||||
echo "emptySrc is not empty"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Test that glibcSrc is not empty
|
||||
if [ -z "$(ls -A ${glibcSrc})" ]; then
|
||||
echo "glibcSrc is empty"
|
||||
exit 1
|
||||
fi
|
||||
# Test that zlibSrc is not empty
|
||||
if [ -z "$(ls -A ${zlibSrc})" ]; then
|
||||
echo "zlibSrc is empty"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Make $out exist to avoid build failure
|
||||
mkdir -p $out
|
||||
''
|
||||
# Make $out exist to avoid build failure
|
||||
mkdir -p $out
|
||||
''
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
rustPlatform.buildRustPackage (finalAttrs: {
|
||||
pname = "amazon-q-cli";
|
||||
version = "1.12.2";
|
||||
version = "1.12.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "aws";
|
||||
repo = "amazon-q-developer-cli-autocomplete";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-TIKG1nzpmjiHE+EjTJR+/GklQNJQeUzmDXaPEiRT80Y=";
|
||||
hash = "sha256-juZuqZkBsIHhLOCZk+QpTaO1BsHj2RZyCvkvc0G5KbU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
@@ -22,7 +22,7 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
|
||||
cargoHash = "sha256-lJbHPqQ3eybo03oZY2VyKlsxcTdbdrc8q8AjV+IahEY=";
|
||||
cargoHash = "sha256-BT3LNOkRf4gfBy5SwuAnMoJVF9PmwiLsS5phdtEgIrs=";
|
||||
|
||||
cargoBuildFlags = [
|
||||
"-p"
|
||||
|
||||
@@ -16,6 +16,7 @@
|
||||
wireguard-tools,
|
||||
libssh,
|
||||
zlib,
|
||||
openssl,
|
||||
tun2socks,
|
||||
xray,
|
||||
nix-update-script,
|
||||
@@ -41,16 +42,16 @@ let
|
||||
amnezia-xray = xray.overrideAttrs (
|
||||
finalAttrs: prevAttrs: {
|
||||
pname = "amnezia-xray";
|
||||
version = "1.8.13";
|
||||
version = "1.8.15";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "amnezia-vpn";
|
||||
repo = "amnezia-xray-core";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-7XYdogoUEv3kTPTOQwRCohsPtfSDf+aRdI28IkTjvPk=";
|
||||
hash = "sha256-3ZGkfGxYl9/yE7Q2CsJkFJ6xSGybBdq3DztQ0f4VsnY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-zArdGj5yeRxU0X4jNgT5YBI9SJUyrANDaqNPAPH3d5M=";
|
||||
vendorHash = "sha256-AimQsuBRhgpTY5rW8WRejCkx4s9Q9n+OuTf4XCrgpnE=";
|
||||
}
|
||||
);
|
||||
|
||||
@@ -64,56 +65,50 @@ let
|
||||
in
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "amnezia-vpn";
|
||||
version = "4.8.6.0";
|
||||
version = "4.8.8.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "amnezia-vpn";
|
||||
repo = "amnezia-client";
|
||||
tag = finalAttrs.version;
|
||||
hash = "sha256-WQbay3dtGNPPpcK1O7bfs/HKO4ytfmQo60firU/9o28=";
|
||||
hash = "sha256-hDbrp6eT+avFepJL55Vl2alOD+IMnyy8MPXZQTEmLJo=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
# Temporary patch header file to fix build with QT 6.9
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "add-missing-include.patch";
|
||||
url = "https://github.com/amnezia-vpn/amnezia-client/commit/c44ce0d77cc3acdf1de48a12459a1a821d404a1c.patch";
|
||||
hash = "sha256-Q6UMD8PlKAcI6zNolT5+cULECnxNrYrD7cifvNg1ZrY=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch =
|
||||
''
|
||||
substituteInPlace client/platforms/linux/daemon/wireguardutilslinux.cpp \
|
||||
--replace-fail 'm_tunnel.start(appPath.filePath("../../client/bin/wireguard-go"), wgArgs);' 'm_tunnel.start("${amneziawg-go}/bin/amneziawg-go", wgArgs);'
|
||||
substituteInPlace client/utilities.cpp \
|
||||
--replace-fail 'return Utils::executable("../../client/bin/openvpn", true);' 'return Utils::executable("${openvpn}/bin/openvpn", false);' \
|
||||
--replace-fail 'return Utils::executable("../../client/bin/tun2socks", true);' 'return Utils::executable("${amnezia-tun2socks}/bin/amnezia-tun2socks", false);' \
|
||||
--replace-fail 'return Utils::usrExecutable("wg-quick");' 'return Utils::executable("${wireguard-tools}/bin/wg-quick", false);'
|
||||
substituteInPlace client/protocols/xrayprotocol.cpp \
|
||||
--replace-fail 'return Utils::executable(QString("xray"), true);' 'return Utils::executable(QString("${amnezia-xray}/bin/xray"), false);'
|
||||
substituteInPlace client/protocols/openvpnovercloakprotocol.cpp \
|
||||
--replace-fail 'return Utils::executable(QString("/ck-client"), true);' 'return Utils::executable(QString("${cloak-pt}/bin/ck-client"), false);'
|
||||
substituteInPlace client/protocols/shadowsocksvpnprotocol.cpp \
|
||||
--replace-fail 'return Utils::executable(QString("/ss-local"), true);' 'return Utils::executable(QString("${shadowsocks-rust}/bin/sslocal"), false);'
|
||||
substituteInPlace client/configurators/openvpn_configurator.cpp \
|
||||
--replace-fail ".arg(qApp->applicationDirPath());" ".arg(\"$out/libexec\");"
|
||||
substituteInPlace client/ui/qautostart.cpp \
|
||||
--replace-fail "/usr/share/pixmaps/AmneziaVPN.png" "AmneziaVPN"
|
||||
substituteInPlace deploy/installer/config/AmneziaVPN.desktop.in \
|
||||
--replace-fail "/usr/share/pixmaps/AmneziaVPN.png" "$out/share/pixmaps/AmneziaVPN.png"
|
||||
substituteInPlace deploy/data/linux/AmneziaVPN.service \
|
||||
--replace-fail "ExecStart=/opt/AmneziaVPN/service/AmneziaVPN-service.sh" "ExecStart=$out/bin/AmneziaVPN-service" \
|
||||
--replace-fail "Environment=LD_LIBRARY_PATH=/opt/AmneziaVPN/client/lib" ""
|
||||
''
|
||||
+ (lib.optionalString (stdenv.hostPlatform.isAarch64 && stdenv.hostPlatform.isLinux) ''
|
||||
substituteInPlace client/cmake/3rdparty.cmake \
|
||||
--replace-fail 'set(LIBSSH_LIB_PATH "''${LIBSSH_ROOT_DIR}/linux/x86_64/libssh.a")' 'set(LIBSSH_LIB_PATH "${libssh}/lib/libssh.so")' \
|
||||
--replace-fail 'set(ZLIB_LIB_PATH "''${LIBSSH_ROOT_DIR}/linux/x86_64/libz.a")' 'set(ZLIB_LIB_PATH "${zlib}/lib/libz.so")' \
|
||||
--replace-fail 'set(OPENSSL_LIB_SSL_PATH "''${OPENSSL_ROOT_DIR}/linux/x86_64/libssl.a")' 'set(OPENSSL_LIB_SSL_PATH "''${OPENSSL_ROOT_DIR}/linux/arm64/libssl.a")' \
|
||||
--replace-fail 'set(OPENSSL_LIB_CRYPTO_PATH "''${OPENSSL_ROOT_DIR}/linux/x86_64/libcrypto.a")' 'set(OPENSSL_LIB_CRYPTO_PATH "''${OPENSSL_ROOT_DIR}/linux/arm64/libcrypto.a")'
|
||||
'');
|
||||
postPatch = ''
|
||||
substituteInPlace client/platforms/linux/daemon/wireguardutilslinux.cpp \
|
||||
--replace-fail 'm_tunnel.start(appPath.filePath("../../client/bin/wireguard-go"), wgArgs);' 'm_tunnel.start("${amneziawg-go}/bin/amneziawg-go", wgArgs);'
|
||||
substituteInPlace client/utilities.cpp \
|
||||
--replace-fail 'return Utils::executable("../../client/bin/openvpn", true);' 'return Utils::executable("${openvpn}/bin/openvpn", false);' \
|
||||
--replace-fail 'return Utils::executable("../../client/bin/tun2socks", true);' 'return Utils::executable("${amnezia-tun2socks}/bin/amnezia-tun2socks", false);' \
|
||||
--replace-fail 'return Utils::usrExecutable("wg-quick");' 'return Utils::executable("${wireguard-tools}/bin/wg-quick", false);'
|
||||
substituteInPlace client/protocols/xrayprotocol.cpp \
|
||||
--replace-fail 'return Utils::executable(QString("xray"), true);' 'return Utils::executable(QString("${amnezia-xray}/bin/xray"), false);'
|
||||
substituteInPlace client/protocols/openvpnovercloakprotocol.cpp \
|
||||
--replace-fail 'return Utils::executable(QString("/ck-client"), true);' 'return Utils::executable(QString("${cloak-pt}/bin/ck-client"), false);'
|
||||
substituteInPlace client/protocols/shadowsocksvpnprotocol.cpp \
|
||||
--replace-fail 'return Utils::executable(QString("/ss-local"), true);' 'return Utils::executable(QString("${shadowsocks-rust}/bin/sslocal"), false);'
|
||||
substituteInPlace client/configurators/openvpn_configurator.cpp \
|
||||
--replace-fail ".arg(qApp->applicationDirPath());" ".arg(\"$out/libexec\");"
|
||||
substituteInPlace client/ui/qautostart.cpp \
|
||||
--replace-fail "/usr/share/pixmaps/AmneziaVPN.png" "AmneziaVPN"
|
||||
substituteInPlace deploy/installer/config/AmneziaVPN.desktop.in \
|
||||
--replace-fail "/usr/share/pixmaps/AmneziaVPN.png" "$out/share/pixmaps/AmneziaVPN.png"
|
||||
substituteInPlace deploy/data/linux/AmneziaVPN.service \
|
||||
--replace-fail "ExecStart=/opt/AmneziaVPN/service/AmneziaVPN-service.sh" "ExecStart=$out/bin/AmneziaVPN-service" \
|
||||
--replace-fail "Environment=LD_LIBRARY_PATH=/opt/AmneziaVPN/client/lib" ""
|
||||
substituteInPlace client/cmake/3rdparty.cmake \
|
||||
--replace-fail 'set(LIBSSH_LIB_PATH "''${LIBSSH_ROOT_DIR}/linux/x86_64/libssh.a")' 'set(LIBSSH_LIB_PATH "${libssh}/lib/libssh.so")' \
|
||||
--replace-fail 'set(ZLIB_LIB_PATH "''${LIBSSH_ROOT_DIR}/linux/x86_64/libz.a")' 'set(ZLIB_LIB_PATH "${zlib}/lib/libz.so")' \
|
||||
--replace-fail 'set(OPENSSL_INCLUDE_DIR "''${OPENSSL_ROOT_DIR}/linux/include")' 'set(OPENSSL_INCLUDE_DIR "${openssl.dev}/include")' \
|
||||
--replace-fail 'set(OPENSSL_LIB_SSL_PATH "''${OPENSSL_ROOT_DIR}/linux/x86_64/libssl.a")' 'set(OPENSSL_LIB_SSL_PATH "${openssl.out}/lib/libssl.so")' \
|
||||
--replace-fail 'set(OPENSSL_LIB_CRYPTO_PATH "''${OPENSSL_ROOT_DIR}/linux/x86_64/libcrypto.a")' 'set(OPENSSL_LIB_CRYPTO_PATH "${openssl.out}/lib/libcrypto.so")' \
|
||||
--replace-fail 'set(OPENSSL_USE_STATIC_LIBS TRUE)' 'set(OPENSSL_USE_STATIC_LIBS FALSE)'
|
||||
substituteInPlace service/server/CMakeLists.txt \
|
||||
--replace-fail 'set(OPENSSL_INCLUDE_DIR "''${OPENSSL_ROOT_DIR}/linux/include")' 'set(OPENSSL_INCLUDE_DIR "${openssl.dev}/include")' \
|
||||
--replace-fail 'set(OPENSSL_LIB_CRYPTO_PATH "''${OPENSSL_ROOT_DIR}/linux/x86_64/libcrypto.a")' 'set(OPENSSL_LIB_CRYPTO_PATH "${openssl.out}/lib/libcrypto.so")' \
|
||||
--replace-fail 'set(OPENSSL_USE_STATIC_LIBS TRUE)' 'set(OPENSSL_USE_STATIC_LIBS FALSE)'
|
||||
'';
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "andcli";
|
||||
version = "2.2.0";
|
||||
version = "2.3.0";
|
||||
|
||||
subPackages = [ "cmd/andcli" ];
|
||||
|
||||
@@ -16,10 +16,10 @@ buildGoModule (finalAttrs: {
|
||||
owner = "tjblackheart";
|
||||
repo = "andcli";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-wAatlCckSpa/BE4UVR/L6SkVmNyW2/cl//JOy62EaLc=";
|
||||
hash = "sha256-umV0oJ4sySnZzrIpRuTP/fT8a9nhkC1shVEfVVRpEyI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-/rmx9g7OfsZXr3zb1UfR1qLxdV2/ELzc/wXn0fJRzbE=";
|
||||
vendorHash = "sha256-lzmkNxQUqktnl2Rpjgoa2yvAuGiMtVGNhiuF40how4o=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -27,8 +27,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
# lockfileVersion: '6.0' need old pnpm
|
||||
pnpmDeps = pnpm_8.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-h1rcM+H2c0lk7bpGeQT5ue9bQIggrCFHkj4o7KxnH08=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-h1rcM+H2c0lk7bpGeQT5ue9bQIggrCFHkj4o7KxnH08=";
|
||||
};
|
||||
|
||||
cargoRoot = "src-tauri";
|
||||
|
||||
@@ -28,8 +28,8 @@ buildGoModule rec {
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit src version pname;
|
||||
sourceRoot = "${src.name}/ui";
|
||||
hash = "sha256-/se6IWeHdazqS7PzOpgtT4IxCJ1WptqBzZ/BdmGb4BA=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-/se6IWeHdazqS7PzOpgtT4IxCJ1WptqBzZ/BdmGb4BA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -23,13 +23,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "aquamarine";
|
||||
version = "0.8.0";
|
||||
version = "0.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hyprwm";
|
||||
repo = "aquamarine";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-ybpV2+yNExdHnMhhhmtxqgBCgI+nRr8gi/D+VVb9lQY=";
|
||||
hash = "sha256-1bxH4zW/mnEh7ySsByZBRpANUG/Ym8kgorawYI70z7A=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -33,8 +33,8 @@ let
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-QIfadS2gNPtH006O86EndY/Hx2ml2FoKfUXJF5qoluw=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-QIfadS2gNPtH006O86EndY/Hx2ml2FoKfUXJF5qoluw=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
|
||||
@@ -25,8 +25,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
pnpmWorkspaces
|
||||
prePnpmInstall
|
||||
;
|
||||
hash = "sha256-tlpk+wbLjJqt37lu67p2A2RZAR1ZfnZFiYoqIQwvWPQ=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-tlpk+wbLjJqt37lu67p2A2RZAR1ZfnZFiYoqIQwvWPQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "atmos";
|
||||
version = "1.180.0";
|
||||
version = "1.182.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cloudposse";
|
||||
repo = "atmos";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-/yCgC73J4PVTqmJBW0eLCMVWtsyMGLeF0Rmvx+N/oP8=";
|
||||
hash = "sha256-xGNexXxeX6ZKG4eWCoj0laHHXegnNqSfRPEkIWcieNQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-k1zC3tUF2uDAo86J6dZmYOGZcYFBNdSH15cyX2tiZEg=";
|
||||
vendorHash = "sha256-P+Fsc6z3kTG8iq29KEp7DUV4zeT7Kee384TMosTDKGU=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
||||
@@ -40,8 +40,8 @@ let
|
||||
src
|
||||
sourceRoot
|
||||
;
|
||||
hash = "sha256-TbdRJqLdNI7wchUsx2Kw1LlDyv50XlCiKyn6rhZyN1U=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-TbdRJqLdNI7wchUsx2Kw1LlDyv50XlCiKyn6rhZyN1U=";
|
||||
};
|
||||
|
||||
postBuild = ''
|
||||
|
||||
@@ -6,17 +6,17 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "automatic-timezoned";
|
||||
version = "2.0.80";
|
||||
version = "2.0.82";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "maxbrunet";
|
||||
repo = "automatic-timezoned";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-5JrIcdNgi68g+5zF0y4YeNboFl6SS9QvZEsmcMh35gE=";
|
||||
sha256 = "sha256-qUpPeuFfdj0rIygSo9C7LGdFi7l1erfz4XYTuxLgL7M=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-IX3lSupcKn1ET4Q7tLpUBhQ+wfmfUyM/onlTwW7wloU=";
|
||||
cargoHash = "sha256-7QkrKeF1WY1ewe4GsdpZ/Na7hd9AGq+ixepeB473bDQ=";
|
||||
|
||||
meta = {
|
||||
description = "Automatically update system timezone based on location";
|
||||
|
||||
@@ -25,8 +25,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-zb/BwL//i0oly5HEXN20E3RzZXdaOn+G2yIWRas3PB4=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-zb/BwL//i0oly5HEXN20E3RzZXdaOn+G2yIWRas3PB4=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -56,6 +56,8 @@ stdenv.mkDerivation rec {
|
||||
homepage = "https://github.com/awslabs/aws-c-common";
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.unix;
|
||||
# https://github.com/awslabs/aws-c-common/issues/1175
|
||||
badPlatforms = platforms.bigEndian;
|
||||
maintainers = with maintainers; [
|
||||
orivej
|
||||
r-burns
|
||||
|
||||
@@ -33,8 +33,8 @@ let
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-q7VMQb/FRT953yT2cyGMxUPp8p8XkA9mvqGI7S7Eifg=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-q7VMQb/FRT953yT2cyGMxUPp8p8XkA9mvqGI7S7Eifg=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
|
||||
@@ -28,8 +28,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
src
|
||||
pnpmWorkspaces
|
||||
;
|
||||
hash = "sha256-NvyqPv5OKgZi3hW98Da8LhsYatmrzrPX8kLOfLr+BrI=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-NvyqPv5OKgZi3hW98Da8LhsYatmrzrPX8kLOfLr+BrI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -13,16 +13,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "bootc";
|
||||
version = "1.1.2";
|
||||
version = "1.4.0";
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-/Sb2XtVguj5zpj/OTl90xFHFSaBeLgb8xIlNm4UrnRI=";
|
||||
cargoHash = "sha256-7Fn68bcm8ZyR5eALCMIdcXcZ595EnWFHKdnqI5vMso4=";
|
||||
doInstallCheck = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "containers";
|
||||
owner = "bootc-dev";
|
||||
repo = "bootc";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-p1+j62MllmPcvWnijieSZmlgwYy76X17fv12Haetz78=";
|
||||
hash = "sha256-FuU3rQtKpK+ScQ10GivisSJseY2GOFJ/y2HRKIiU0G8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
@@ -35,13 +35,26 @@ rustPlatform.buildRustPackage rec {
|
||||
ostree-full
|
||||
];
|
||||
|
||||
checkFlags = [
|
||||
# These all require a writable /var/tmp
|
||||
"--skip=test_cli_fns"
|
||||
"--skip=test_diff"
|
||||
"--skip=test_tar_export_reproducible"
|
||||
"--skip=test_tar_export_structure"
|
||||
"--skip=test_tar_import_empty"
|
||||
"--skip=test_tar_import_export"
|
||||
"--skip=test_tar_import_signed"
|
||||
"--skip=test_tar_write"
|
||||
"--skip=test_tar_write_tar_layer"
|
||||
];
|
||||
|
||||
nativeInstallCheckInputs = [
|
||||
versionCheckHook
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Boot and upgrade via container images";
|
||||
homepage = "https://containers.github.io/bootc";
|
||||
homepage = "https://bootc-dev.github.io/bootc";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "bootc";
|
||||
maintainers = with lib.maintainers; [ thesola10 ];
|
||||
|
||||
@@ -24,8 +24,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-duxpym1DlJM4q5j0wmrubYiAHQ3cDEFfeD9Gyic6mbI=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-duxpym1DlJM4q5j0wmrubYiAHQ3cDEFfeD9Gyic6mbI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "byedpi";
|
||||
version = "0.17.1";
|
||||
version = "0.17.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "hufrea";
|
||||
repo = "byedpi";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-an0UmsAZw5DJMuM4WpAWBVVN0ZVBpXhn0cbZ0ZbfBjo=";
|
||||
hash = "sha256-XeUcf8w6b0vZQwttopRnmg5320oF/Z+gHWcWMQ6kAkc=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -8,13 +8,13 @@
|
||||
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "candy-icons";
|
||||
version = "0-unstable-2025-06-23";
|
||||
version = "0-unstable-2025-07-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "EliverLara";
|
||||
repo = "candy-icons";
|
||||
rev = "29976b2036490599753766f869f83e9346d8cf8e";
|
||||
hash = "sha256-UxuW9cRGmKS2t8ik2tMAQHU0Xj+W5WhWuBxnLkkPnoE=";
|
||||
rev = "475c5b27d34e6bde3ed11e985a727bd7ec9f155a";
|
||||
hash = "sha256-XU10gw0WYWnzyzbzJlg2oNCksLY/Tt1CJGo0Nu4FLnM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ gtk3 ];
|
||||
|
||||
@@ -34,8 +34,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
src
|
||||
;
|
||||
|
||||
hash = "sha256-plANa/+9YEQ4ipgdQ7QzPyxgz6eDCBhO7qFlxK6Ab58=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-plANa/+9YEQ4ipgdQ7QzPyxgz6eDCBhO7qFlxK6Ab58=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -37,8 +37,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-7NrDYd4H0cPQs8w4lWlB0BhqcYZVo6/9zf0ujPjBzsE=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-7NrDYd4H0cPQs8w4lWlB0BhqcYZVo6/9zf0ujPjBzsE=";
|
||||
};
|
||||
|
||||
buildPhase = ''
|
||||
|
||||
@@ -19,12 +19,12 @@ let
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "circt";
|
||||
version = "1.124.0";
|
||||
version = "1.125.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "llvm";
|
||||
repo = "circt";
|
||||
rev = "firtool-${version}";
|
||||
hash = "sha256-IoS7mhQLiaVlqyosqOOaoGKBkS5WuQHRJK9v+FonCxc=";
|
||||
hash = "sha256-bpQvBUSYpmv6bmgXSCz9pfGgFxlGVFFDfaSkvk7481E=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -37,8 +37,8 @@ rustPlatform.buildRustPackage {
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit pname version src;
|
||||
hash = pnpm-hash;
|
||||
fetcherVersion = 1;
|
||||
hash = pnpm-hash;
|
||||
};
|
||||
|
||||
env = {
|
||||
|
||||
@@ -29,8 +29,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
src
|
||||
patches
|
||||
;
|
||||
hash = "sha256-F1teWIABkK0mqZcK3RdGNKmexI/C59QWSrrD1jYbHt0=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-F1teWIABkK0mqZcK3RdGNKmexI/C59QWSrrD1jYbHt0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
From c0d7c99632ea2ee01066988708cbb41f335cbdc3 Mon Sep 17 00:00:00 2001
|
||||
From: Brahmajit Das <listout@listout.xyz>
|
||||
Date: Sat, 14 Jun 2025 00:18:38 +0530
|
||||
Subject: [PATCH] src/lib/serialize.h: don't define double as float_t
|
||||
|
||||
libuv with commit 85b526f makes uv.h include math.h for the definitions
|
||||
of NAN/INFINITY. That header also defines the ISO C standard float_t
|
||||
type. Now that that definition is in scope, the cowsql definition in
|
||||
src/lib/serialize.h conflicts with it.
|
||||
|
||||
Fixes: 451cff63b29366237a9502823299b05bbff8662b
|
||||
Closes: https://github.com/cowsql/cowsql/issues/35
|
||||
Signed-off-by: Brahmajit Das <listout@listout.xyz>
|
||||
---
|
||||
src/lib/serialize.h | 8 ++++----
|
||||
1 file changed, 4 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/src/lib/serialize.h b/src/lib/serialize.h
|
||||
index 9fbd49c..a7f9147 100644
|
||||
--- a/src/lib/serialize.h
|
||||
+++ b/src/lib/serialize.h
|
||||
@@ -37,7 +37,7 @@ static_assert(sizeof(double) == sizeof(uint64_t),
|
||||
* Basic type aliases to used by macro-based processing.
|
||||
*/
|
||||
typedef const char *text_t;
|
||||
-typedef double float_t;
|
||||
+typedef double cowsql_float;
|
||||
typedef uv_buf_t blob_t;
|
||||
|
||||
/**
|
||||
@@ -143,7 +143,7 @@ COWSQL_INLINE size_t int64__sizeof(const int64_t *value)
|
||||
return sizeof(int64_t);
|
||||
}
|
||||
|
||||
-COWSQL_INLINE size_t float__sizeof(const float_t *value)
|
||||
+COWSQL_INLINE size_t float__sizeof(const cowsql_float *value)
|
||||
{
|
||||
(void)value;
|
||||
return sizeof(double);
|
||||
@@ -190,7 +190,7 @@ COWSQL_INLINE void int64__encode(const int64_t *value, void **cursor)
|
||||
*cursor += sizeof(int64_t);
|
||||
}
|
||||
|
||||
-COWSQL_INLINE void float__encode(const float_t *value, void **cursor)
|
||||
+COWSQL_INLINE void float__encode(const cowsql_float *value, void **cursor)
|
||||
{
|
||||
*(uint64_t *)(*cursor) = ByteFlipLe64(*(uint64_t *)value);
|
||||
*cursor += sizeof(uint64_t);
|
||||
@@ -273,7 +273,7 @@ COWSQL_INLINE int int64__decode(struct cursor *cursor, int64_t *value)
|
||||
return 0;
|
||||
}
|
||||
|
||||
-COWSQL_INLINE int float__decode(struct cursor *cursor, float_t *value)
|
||||
+COWSQL_INLINE int float__decode(struct cursor *cursor, cowsql_float *value)
|
||||
{
|
||||
size_t n = sizeof(double);
|
||||
if (n > cursor->cap) {
|
||||
@@ -13,21 +13,15 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cowsql";
|
||||
version = "1.15.8";
|
||||
version = "1.15.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cowsql";
|
||||
repo = "cowsql";
|
||||
tag = "v${finalAttrs.version}";
|
||||
hash = "sha256-rwTa9owtnkyI9OpUKLk6V7WbAkqlYucpGzPnHHvKW/A=";
|
||||
hash = "sha256-7djVcozWklI/0KhDC20df+H3YQbodUZaXBnQT4Ug8oI=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# fix libuv changes. review removal in > 1.15.8
|
||||
# https://github.com/cowsql/cowsql/pull/37
|
||||
./37.patch
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
|
||||
@@ -24,13 +24,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cubeb";
|
||||
version = "0-unstable-2025-06-16";
|
||||
version = "0-unstable-2025-07-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mozilla";
|
||||
repo = "cubeb";
|
||||
rev = "566c73da47668ca85817108b749a13ac9c3f5a9d";
|
||||
hash = "sha256-qYDsRhVBHLOVpWwtRNUtnZRZZq9Rot1pOn+4let6v6I=";
|
||||
rev = "fa021607121360af7c171d881dc5bc8af7bb56eb";
|
||||
hash = "sha256-6PUHUPybe3g5nexunAHsHLThFdvpnv+avks+C0oYih0=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
||||
@@ -27,8 +27,8 @@ let
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit pname version src;
|
||||
hash = "sha256-+yLpSbDzr1OV/bmUUg6drOvK1ok3cBd+RRV7Qrrlp+Q=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-+yLpSbDzr1OV/bmUUg6drOvK1ok3cBd+RRV7Qrrlp+Q=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -10,13 +10,13 @@
|
||||
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "databricks-cli";
|
||||
version = "0.258.0";
|
||||
version = "0.259.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "databricks";
|
||||
repo = "cli";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-8JVU0tn0KINBdEE0nS2VQ8v9TUn9h2euPGZELSCbcLA=";
|
||||
hash = "sha256-UzfLtGwiyEnHRn54qAwcqMXag8k8GjpB5BGMYh/93O8=";
|
||||
};
|
||||
|
||||
# Otherwise these tests fail asserting that the version is 0.0.0-dev
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "ddns-go";
|
||||
version = "6.11.2";
|
||||
version = "6.11.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jeessy2";
|
||||
repo = "ddns-go";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-dzHNv7zfn1jU3F7nyQP/mP3icGCoeR3C7rerE3oYoTw=";
|
||||
hash = "sha256-65j1hZqnpSRpDmkzjb8ciJoVGHbV2xuOwBLcsW65eOE=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-oHiREhvqu14z5StjzD4PgtFasYQ0X435eMCRMiWUzg0=";
|
||||
|
||||
@@ -48,8 +48,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-PBCmyNmlH88y5s7+8WHcei8SP3Q0lIAAnAQn9uaFxLc=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-PBCmyNmlH88y5s7+8WHcei8SP3Q0lIAAnAQn9uaFxLc=";
|
||||
};
|
||||
|
||||
nativeBuildInputs =
|
||||
|
||||
@@ -15,13 +15,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dhcpcd";
|
||||
version = "10.1.0";
|
||||
version = "10.2.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NetworkConfiguration";
|
||||
repo = "dhcpcd";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Qtg9jOFMR/9oWJDmoNNcEAMxG6G1F187HF4MMBJIoTw=";
|
||||
sha256 = "sha256-ysaKgF4Cu/S6yhSn/4glA0+Ey54KNp3/1Oh82yE0/PY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
||||
@@ -59,8 +59,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-xBonUzA4+1zbViEsKap6CaG6ZRldW1LjNYIB+FmVRFs=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-xBonUzA4+1zbViEsKap6CaG6ZRldW1LjNYIB+FmVRFs=";
|
||||
};
|
||||
|
||||
# CMake (webkit extension)
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
diff --git a/configure.ac b/configure.ac
|
||||
index f4b270f..17e102f 100644
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -1,5 +1,9 @@
|
||||
AC_INIT(DVDAuthor,0.7.2,dvdauthor-users@lists.sourceforge.net)
|
||||
|
||||
+AC_CONFIG_MACRO_DIRS([m4])
|
||||
+AM_GNU_GETTEXT_VERSION([0.25])
|
||||
+AM_GNU_GETTEXT([external])
|
||||
+
|
||||
AC_CONFIG_HEADERS(src/config.h)
|
||||
AC_CONFIG_AUX_DIR(autotools)
|
||||
|
||||
@@ -40,6 +40,7 @@ stdenv.mkDerivation rec {
|
||||
url = "https://github.com/ldo/dvdauthor/commit/45705ece5ec5d7d6b9ab3e7a68194796a398e855.patch?full_index=1";
|
||||
hash = "sha256-tykCr2Axc1qhUvjlGyXQ6X+HwzuFTm5Va2gjGlOlSH0=";
|
||||
})
|
||||
./gettext-0.25.patch
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "ejsonkms";
|
||||
version = "0.2.5";
|
||||
version = "0.2.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "envato";
|
||||
repo = "ejsonkms";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-EcNvzkZmSASe+0UMixBe8qwZq1JN3zFvppdWu1LM46A=";
|
||||
hash = "sha256-G2rUcAjFSXnkRaQiu3WK5WRwNeQ0vyxj1Ql+vaRUUeM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-LS+iCTpE7+vXa25CTudNHLPRYSod4ozuErnoYWB9LNU=";
|
||||
vendorHash = "sha256-ulocGcRnkWBLnkoimkxrppO2i9lowFChlMYl0+kVXCo=";
|
||||
|
||||
ldflags = [
|
||||
"-X main.version=v${version}"
|
||||
|
||||
@@ -20,8 +20,8 @@ stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-hh5PEtmSHPs6QBgwWHS0laGU21e82JckIP3mB/P9/vE=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-hh5PEtmSHPs6QBgwWHS0laGU21e82JckIP3mB/P9/vE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -30,8 +30,8 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit pname version src;
|
||||
hash = "sha256-hvWXSegUWJvwCU5NLb2vqnl+FIWpCLxw96s9NUIgJTI=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-hvWXSegUWJvwCU5NLb2vqnl+FIWpCLxw96s9NUIgJTI=";
|
||||
};
|
||||
|
||||
cargoRoot = "src-tauri";
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ente-web";
|
||||
version = "1.1.53";
|
||||
version = "1.1.57";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ente-io";
|
||||
@@ -20,13 +20,13 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
sparseCheckout = [ "web" ];
|
||||
tag = "photos-v${finalAttrs.version}";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-LYFkqB44pS7WLa4HEnYrnRanh04P82ydsqiZYHNAshc=";
|
||||
hash = "sha256-SCkxGm/w0kES7wDuLBsUTgwrFYNLvLD51NyioAVTLrg=";
|
||||
};
|
||||
sourceRoot = "${finalAttrs.src.name}/web";
|
||||
|
||||
offlineCache = fetchYarnDeps {
|
||||
yarnLock = "${finalAttrs.src}/web/yarn.lock";
|
||||
hash = "sha256-8uqKlqBnYTft3P7r1rQaEqn7ixj55yWnSLKTNi/0MZA=";
|
||||
hash = "sha256-FnLMXOpIVNOhaM7VjNEDlwpew9T/5Ch5eFed9tLpDsI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -39,8 +39,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
src
|
||||
patches
|
||||
;
|
||||
hash = "sha256-laTyxRh54x3iopGVgoFtcgaV7R6IKux1O/+tzGEy0Fg=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-laTyxRh54x3iopGVgoFtcgaV7R6IKux1O/+tzGEy0Fg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -25,8 +25,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-fjfzBy1Z7AUKA53yjjCQ6yasHc5QMaOBtXtXA5fNK5s=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-fjfzBy1Z7AUKA53yjjCQ6yasHc5QMaOBtXtXA5fNK5s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -19,7 +19,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "erofs-utils";
|
||||
version = "1.8.9";
|
||||
version = "1.8.10";
|
||||
outputs = [
|
||||
"out"
|
||||
"man"
|
||||
@@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://git.kernel.org/pub/scm/linux/kernel/git/xiang/erofs-utils.git/snapshot/erofs-utils-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-FFpvf+SUGBTTAJnDVoRI03yBnM0DD8W/vKqyETTmF24=";
|
||||
hash = "sha256-BetO3r4R3szm7LNOmNL4DIzSg8Lyln2Lp+/VhBhXBRQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -31,8 +31,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-n7LolizpKng7zzccytYoCwJ7uGQbMagsgYPDuq0mdxU=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-n7LolizpKng7zzccytYoCwJ7uGQbMagsgYPDuq0mdxU=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "fabric-ai";
|
||||
version = "1.4.231";
|
||||
version = "1.4.247";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "danielmiessler";
|
||||
repo = "fabric";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-V/ryS0EB8izLsU0ggmAkdq3oFnR2h16ZF1JTJT/GMwY=";
|
||||
hash = "sha256-s1FlQIbHSCWUR9f3qWfYHOLYmG8GwJb3SAu6d9DAH1Q=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-g2nMyrmDkb14siqiAMcis1bRijTsJ2KDtaK3FHCofx0=";
|
||||
vendorHash = "sha256-/3+4oeKl+GQPmYt3yBt77ATm55pALa+62mC6lktSTiw=";
|
||||
|
||||
# Fabric introduced plugin tests that fail in the nix build sandbox.
|
||||
doCheck = false;
|
||||
|
||||
@@ -38,8 +38,8 @@ rustPlatform.buildRustPackage (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-xXVsjAXmrsOp+mXrYAxSKz4vX5JApLZ+Rh6hrYlnJDI=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-xXVsjAXmrsOp+mXrYAxSKz4vX5JApLZ+Rh6hrYlnJDI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -37,8 +37,8 @@ let
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
sourceRoot = "${src.name}/frontend";
|
||||
hash = "sha256-vLOtVeGFeHXgQglvKsih4lj1uIs6wipwfo374viIq4I=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-vLOtVeGFeHXgQglvKsih4lj1uIs6wipwfo374viIq4I=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
--- a/configure.ac
|
||||
+++ b/configure.ac
|
||||
@@ -152,8 +152,10 @@
|
||||
AC_SUBST([GETTEXT_PACKAGE], '[PKG_NAME]')
|
||||
AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], ["$GETTEXT_PACKAGE"],)
|
||||
|
||||
+AM_GNU_GETTEXT_VERSION([0.22.5])
|
||||
+AM_GNU_GETTEXT([external])
|
||||
+
|
||||
IT_PROG_INTLTOOL([0.35.0], [no-xml])
|
||||
-AM_PO_SUBDIRS
|
||||
|
||||
AC_CONFIG_COMMANDS([xsl-cleanup],,[rm -f doc/xml/transform-*.xsl])
|
||||
|
||||
@@ -57,6 +57,8 @@ stdenv.mkDerivation rec {
|
||||
./add-config-path-env-var.patch
|
||||
./respect-xml-catalog-files-var.patch
|
||||
./specify-localedir.patch
|
||||
|
||||
./gettext-0.25.patch
|
||||
];
|
||||
|
||||
postPatch =
|
||||
|
||||
@@ -40,8 +40,8 @@ let
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit pname version;
|
||||
src = "${src}/rust/gui-client";
|
||||
hash = "sha256-ttbTYBuUv0vyiYzrFATF4x/zngsRXjuLPfL3qW2HEe4=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-ttbTYBuUv0vyiYzrFATF4x/zngsRXjuLPfL3qW2HEe4=";
|
||||
};
|
||||
pnpmRoot = "rust/gui-client";
|
||||
|
||||
|
||||
@@ -34,8 +34,8 @@ beamPackages.mixRelease rec {
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit pname version;
|
||||
src = "${src}/apps/web/assets";
|
||||
hash = "sha256-ejyBppFtKeyVhAWmssglbpLleOnbw9d4B+iM5Vtx47A=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-ejyBppFtKeyVhAWmssglbpLleOnbw9d4B+iM5Vtx47A=";
|
||||
};
|
||||
pnpmRoot = "apps/web/assets";
|
||||
|
||||
|
||||
@@ -22,8 +22,8 @@ buildNpmPackage rec {
|
||||
npmDeps = pnpmDeps;
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit pname version src;
|
||||
hash = "sha256-E2VxRcOMLvvCQb9gCAGcBTsly571zh/HWM6Q1Zd2eVw=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-E2VxRcOMLvvCQb9gCAGcBTsly571zh/HWM6Q1Zd2eVw=";
|
||||
};
|
||||
|
||||
passthru = {
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "flutter_rust_bridge_codegen";
|
||||
version = "2.11.0";
|
||||
version = "2.11.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fzyzcjy";
|
||||
repo = "flutter_rust_bridge";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-vtdIbrVm9r8PiTYvhz4Ikj4e22jxqgEraH+YHlRS4O4=";
|
||||
hash = "sha256-Us+LwT6tjBcTl2xclVsiLauSlIO8w+PiokpiDB+h1fI=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-TwnibHjMDZ3aj1EDNHd/AO7nNtSnY335P3vU4iyp4SY=";
|
||||
cargoHash = "sha256-pxEwcLiRB95UBfXb+JgS8duEXiZUApH/C8Exus5TkfU=";
|
||||
cargoBuildFlags = "--package flutter_rust_bridge_codegen";
|
||||
cargoTestFlags = "--package flutter_rust_bridge_codegen";
|
||||
|
||||
|
||||
@@ -30,8 +30,8 @@ stdenv.mkDerivation rec {
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit pname version src;
|
||||
hash = "sha256-xNGLYzEz1G5sZSqmji+ItJ9D1vvZcwkkygnDeuypcIM=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-xNGLYzEz1G5sZSqmji+ItJ9D1vvZcwkkygnDeuypcIM=";
|
||||
};
|
||||
|
||||
env = {
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
diff --git i/configure.ac w/configure.ac
|
||||
index bb07bba1..c4e15d53 100644
|
||||
--- i/configure.ac
|
||||
+++ w/configure.ac
|
||||
@@ -20,6 +20,8 @@ AM_INIT_AUTOMAKE([dist-bzip2 parallel-tests subdir-objects foreign])
|
||||
m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES(yes)])
|
||||
AC_CONFIG_HEADERS(include/config.h)
|
||||
AC_CONFIG_MACRO_DIR([m4])
|
||||
+AM_GNU_GETTEXT_VERSION([0.25])
|
||||
+AM_GNU_GETTEXT([external])
|
||||
|
||||
dnl configuration directory will be /usr/local/etc
|
||||
AC_PREFIX_DEFAULT(/usr/local)
|
||||
@@ -22,6 +22,10 @@ stdenv.mkDerivation rec {
|
||||
hash = "sha256-XLZsRqYKg7iihV5GYUi2+ieWLH/R3LP25dCrF+xf9t0=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./gettext-0.25.patch
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
openssl
|
||||
] ++ lib.optional odbcSupport unixODBC;
|
||||
|
||||
@@ -12,14 +12,14 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.15.1";
|
||||
version = "0.15.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
name = "frigate-${version}-source";
|
||||
owner = "blakeblackshear";
|
||||
repo = "frigate";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-rnsc2VXaypIPVtYQHTGe9lg7PuAyjfjz4aeATmFzp5s=";
|
||||
hash = "sha256-YJFtMVCTtp8h9a9RmkcoZSQ+nIKb5o/4JVynVslkx78=";
|
||||
};
|
||||
|
||||
frigate-web = callPackage ./web.nix {
|
||||
|
||||
@@ -118,8 +118,8 @@ python.pkgs.buildPythonApplication rec {
|
||||
|
||||
pnpmDeps = pnpm.fetchDeps {
|
||||
inherit pname version src;
|
||||
hash = "sha256-g7YX2fVXGmb3Qq9NNCb294bk4/0khcIZVSskYbE8Mdw=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-g7YX2fVXGmb3Qq9NNCb294bk4/0khcIZVSskYbE8Mdw=";
|
||||
};
|
||||
|
||||
postBuild = ''
|
||||
|
||||
@@ -8,16 +8,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "g-ls";
|
||||
version = "0.30.0";
|
||||
version = "0.31.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Equationzhao";
|
||||
repo = "g";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-OaYWorybwUxG452b0vEKwryxmRaNTQ5xDWe9GmEWuGE=";
|
||||
hash = "sha256-cHB9oW4vF00hvhZ7KNY5TUjIjLjEoiJb/psMSq+kSHU=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-E/4iB1apLCOEtijCZymObz0Zjlf0+dQC37ALSbl1tr0=";
|
||||
vendorHash = "sha256-5ksa0AJ7JbQPzBypDDMUvnXtIeXNEm9zKL5JetHWnrs=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
||||
@@ -25,13 +25,13 @@ let
|
||||
in
|
||||
stdenvNoCC.mkDerivation rec {
|
||||
pname = "gh-f";
|
||||
version = "1.2.1";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "gennaro-tedesco";
|
||||
repo = "gh-f";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-62FVFW2KLdH0uonIf3OVBFMGLcCteMjydaLAjWtxwUo=";
|
||||
hash = "sha256-CW6iAI5IomJoMuPBFq/3owhZJbcruKtOqoxzsh+FNVw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -64,8 +64,8 @@ rustPlatform.buildRustPackage rec {
|
||||
|
||||
pnpmDeps = pnpm_9.fetchDeps {
|
||||
inherit pname version src;
|
||||
hash = "sha256-5NtfstUuIYyntt09Mu9GAFAOImfO6VMmJ7g15kvGaLE=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-5NtfstUuIYyntt09Mu9GAFAOImfO6VMmJ7g15kvGaLE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
||||
@@ -1,42 +1,42 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitea,
|
||||
buildGo123Module,
|
||||
buildGoModule,
|
||||
testers,
|
||||
gitea-actions-runner,
|
||||
}:
|
||||
|
||||
buildGo123Module rec {
|
||||
buildGoModule (finalAttrs: {
|
||||
pname = "gitea-actions-runner";
|
||||
version = "0.2.11";
|
||||
version = "0.2.12";
|
||||
|
||||
src = fetchFromGitea {
|
||||
domain = "gitea.com";
|
||||
owner = "gitea";
|
||||
repo = "act_runner";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-PmDa8XIe1uZ4SSrs9zh5HBmFaOuj+uuLm7jJ4O5V1dI=";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-z/wEs110Y2IZ2Jm6bayxlD2sjyl2V/v+gP6l9pwGi5o=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-lYJFySGqkhT89vHDp1FcTiiC7DG4ziQ1DaBHLh/kXQc=";
|
||||
vendorHash = "sha256-HuiL6OLShSeGtHb4dOeOFOpOgl55s3x18uYgM4X8G7M=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X gitea.com/gitea/act_runner/internal/pkg/ver.version=v${version}"
|
||||
"-X gitea.com/gitea/act_runner/internal/pkg/ver.version=v${finalAttrs.version}"
|
||||
];
|
||||
|
||||
passthru.tests.version = testers.testVersion {
|
||||
package = gitea-actions-runner;
|
||||
version = "v${version}";
|
||||
version = "v${finalAttrs.version}";
|
||||
};
|
||||
|
||||
meta = {
|
||||
mainProgram = "act_runner";
|
||||
maintainers = with lib.maintainers; [ techknowlogick ];
|
||||
license = lib.licenses.mit;
|
||||
changelog = "https://gitea.com/gitea/act_runner/releases/tag/v${version}";
|
||||
changelog = "https://gitea.com/gitea/act_runner/releases/tag/v${finalAttrs.version}";
|
||||
homepage = "https://gitea.com/gitea/act_runner";
|
||||
description = "Runner for Gitea based on act";
|
||||
};
|
||||
}
|
||||
})
|
||||
|
||||
@@ -33,8 +33,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm_10.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-eIvqZ9a+foYH+jXuqGz1m/4C+0Xq8mTvm7ZajKeOw58=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-eIvqZ9a+foYH+jXuqGz1m/4C+0Xq8mTvm7ZajKeOw58=";
|
||||
};
|
||||
|
||||
env.ELECTRON_SKIP_BINARY_DOWNLOAD = 1;
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "go-dnscollector";
|
||||
version = "1.8.0";
|
||||
version = "1.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dmachard";
|
||||
repo = "go-dnscollector";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-q12hMnSqA/KCkmiqsmBpvDmyHtuEWhMBTKwOOyw3Wfs=";
|
||||
sha256 = "sha256-ebl/edMN45oLV1pN6mCaOSgxSSyAugsBP2sQWbIiPTI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-TtlOwmNyO2/eQCajPBu6Pgdbuk4gacpgtcnr1vZgZdg=";
|
||||
vendorHash = "sha256-Y0LOtyRJWOFAQwfg8roisSer0oCxPiaYICE1FY/SEF8=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
||||
@@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "goctl";
|
||||
version = "1.8.4";
|
||||
version = "1.8.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "zeromicro";
|
||||
repo = "go-zero";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-N0U/8YbqhyD5kb14lq8JKWwfYHUZ57Z/KZyIf6kKl0U=";
|
||||
hash = "sha256-12nlrwzzM5wPyiC3vJfs7sJ7kPiRy1H0gTeWB+9bqKI=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-D56zTwn4y03eaP2yP8Q2F6ixGMaQJwKEqonHNJGp2Ec=";
|
||||
vendorHash = "sha256-ReLXN4SUNQ7X0yHy8FFwD8lRRm05q2FdEdohXpfuZIY=";
|
||||
|
||||
modRoot = "tools/goctl";
|
||||
subPackages = [ "." ];
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gollama";
|
||||
version = "v1.34.0";
|
||||
version = "v1.34.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sammcj";
|
||||
repo = "gollama";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-gWEm5aUVq2yfxuZ6GxITiAAsn5gj1HR9I7seyRX8DoA=";
|
||||
hash = "sha256-Zysy8UTpUzIb4ekg9tAg5Wj7LRIIw8axENYqK8z2TdY=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-7e1wM2FDaQGAIhb0gERy/RgJupra1B52SgTV0EHD570=";
|
||||
|
||||
@@ -42,8 +42,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
pnpmDeps = pnpm'.fetchDeps {
|
||||
inherit (finalAttrs) pname version src;
|
||||
hash = "sha256-8dSyU9arSvISc2kDWbg/CP6L4sZjZi/Zv7TZN4ONOjQ=";
|
||||
fetcherVersion = 1;
|
||||
hash = "sha256-8dSyU9arSvISc2kDWbg/CP6L4sZjZi/Zv7TZN4ONOjQ=";
|
||||
};
|
||||
|
||||
env = {
|
||||
|
||||
@@ -171,11 +171,11 @@ let
|
||||
|
||||
linux = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
inherit pname meta passthru;
|
||||
version = "138.0.7204.92";
|
||||
version = "138.0.7204.100";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://dl.google.com/linux/chrome/deb/pool/main/g/google-chrome-stable/google-chrome-stable_${finalAttrs.version}-1_amd64.deb";
|
||||
hash = "sha256-9HaUIvJEw6PqinEnpam/Dh5+6XPJ2ou+j8Jfhc7nd/E=";
|
||||
hash = "sha256-H22aDTMvbUsbBWasGjCP1dUKmYzD9/6TIzfBpahAnA8=";
|
||||
};
|
||||
|
||||
# With strictDeps on, some shebangs were not being patched correctly
|
||||
@@ -276,11 +276,11 @@ let
|
||||
|
||||
darwin = stdenvNoCC.mkDerivation (finalAttrs: {
|
||||
inherit pname meta passthru;
|
||||
version = "138.0.7204.93";
|
||||
version = "138.0.7204.101";
|
||||
|
||||
src = fetchurl {
|
||||
url = "http://dl.google.com/release2/chrome/k3cs4pgesvh4zq3jml7x52esia_138.0.7204.93/GoogleChrome-138.0.7204.93.dmg";
|
||||
hash = "sha256-IEcwjrtNMMSjwNCrINjXRbnSI0Uf2JKtA+KwvQc5Fhc=";
|
||||
url = "http://dl.google.com/release2/chrome/h7v73czgelyzwk2xfcs2gkpkwm_138.0.7204.101/GoogleChrome-138.0.7204.101.dmg";
|
||||
hash = "sha256-gG20H5QsVmnfRi+Zo+OiLTLlPP2cLp6W+JaJoRE0QtI=";
|
||||
};
|
||||
|
||||
dontPatch = true;
|
||||
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
lib,
|
||||
python3,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "greaseweazle";
|
||||
version = "1.22";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "keirf";
|
||||
repo = "greaseweazle";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-Ki4OvtcFn5DH87OCWY7xN9fRhGxlzS9QIuQCJxPWJco=";
|
||||
};
|
||||
|
||||
build-system = with python3.pkgs; [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
crcmod
|
||||
bitarray
|
||||
pyserial
|
||||
requests
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"greaseweazle"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "Tools for accessing a floppy drive at the raw flux level";
|
||||
homepage = "https://github.com/keirf/greaseweazle";
|
||||
license = lib.licenses.unlicense;
|
||||
maintainers = with lib.maintainers; [ matthewcroughan ];
|
||||
mainProgram = "greaseweazle";
|
||||
};
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user