Merge remote-tracking branch 'origin/master' into staging-next

This commit is contained in:
K900 2024-10-12 21:08:11 +03:00
commit 001fb496bf
74 changed files with 1982 additions and 1407 deletions

View File

@ -25,6 +25,13 @@ jobs:
steps:
- uses: cachix/install-nix-action@08dcb3a5e62fa31e2da3d490afc4176ef55ecd72 # v30
- uses: cachix/cachix-action@ad2ddac53f961de1989924296a1f236fcfbaa4fc # v15
if: github.repository_owner == 'NixOS'
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
# Important: Because we use pull_request_target, this checks out the base branch of the PR, not the PR itself.
# We later build and run code from the base branch with access to secrets,
# so it's important this is not the PRs code.

View File

@ -26,52 +26,22 @@ jobs:
# This should take 1 minute at most, but let's be generous. The default of 6 hours is definitely too long.
timeout-minutes: 10
steps:
# This step has to be in this file, because it's needed to determine which revision of the repository to fetch, and we can only use other files from the repository once it's fetched.
# This checks out the base branch because of pull_request_target
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
with:
path: base
sparse-checkout: ci
- name: Resolving the merge commit
env:
GH_TOKEN: ${{ github.token }}
run: |
# This checks for mergeability of a pull request as recommended in
# https://docs.github.com/en/rest/guides/using-the-rest-api-to-interact-with-your-git-database?apiVersion=2022-11-28#checking-mergeability-of-pull-requests
# Retry the API query this many times
retryCount=5
# Start with 5 seconds, but double every retry
retryInterval=5
while true; do
echo "Checking whether the pull request can be merged"
prInfo=$(gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
/repos/"$GITHUB_REPOSITORY"/pulls/${{ github.event.pull_request.number }})
mergeable=$(jq -r .mergeable <<< "$prInfo")
mergedSha=$(jq -r .merge_commit_sha <<< "$prInfo")
if [[ "$mergeable" == "null" ]]; then
if (( retryCount == 0 )); then
echo "Not retrying anymore. It's likely that GitHub is having internal issues: check https://www.githubstatus.com/"
exit 1
else
(( retryCount -= 1 )) || true
# null indicates that GitHub is still computing whether it's mergeable
# Wait a couple seconds before trying again
echo "GitHub is still computing whether this PR can be merged, waiting $retryInterval seconds before trying again ($retryCount retries left)"
sleep "$retryInterval"
(( retryInterval *= 2 )) || true
fi
else
break
fi
done
if [[ "$mergeable" == "true" ]]; then
echo "The PR can be merged, checking the merge commit $mergedSha"
if mergedSha=$(base/ci/get-merge-commit.sh ${{ github.repository }} ${{ github.event.number }}); then
echo "Checking the merge commit $mergedSha"
echo "mergedSha=$mergedSha" >> "$GITHUB_ENV"
else
echo "The PR cannot be merged, it has a merge conflict, skipping the rest.."
echo "Skipping the rest..."
fi
rm -rf base
- uses: actions/checkout@d632683dd7b4114ad314bca15554477dd762a938 # v4.2.0
if: env.mergedSha
with:

View File

@ -41,3 +41,58 @@ Why not just build the tooling right from the PRs Nixpkgs version?
- Because it improves security, since we don't have to build potentially untrusted code from PRs.
The tool only needs a very minimal Nix evaluation at runtime, which can work with [readonly-mode](https://nixos.org/manual/nix/stable/command-ref/opt-common.html#opt-readonly-mode) and [restrict-eval](https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-restrict-eval).
## `get-merge-commit.sh GITHUB_REPO PR_NUMBER`
Check whether a PR is mergeable and return the test merge commit as
[computed by GitHub](https://docs.github.com/en/rest/guides/using-the-rest-api-to-interact-with-your-git-database?apiVersion=2022-11-28#checking-mergeability-of-pull-requests).
Arguments:
- `GITHUB_REPO`: The repository of the PR, e.g. `NixOS/nixpkgs`
- `PR_NUMBER`: The PR number, e.g. `1234`
Exit codes:
- 0: The PR can be merged, the test merge commit hash is returned on stdout
- 1: The PR cannot be merged because it's not open anymore
- 2: The PR cannot be merged because it has a merge conflict
- 3: The merge commit isn't being computed, GitHub is likely having internal issues, unknown if the PR is mergeable
### Usage
This script can be used in GitHub Actions workflows as follows:
```yaml
on: pull_request_target
# We need a token to query the API, but it doesn't need any special permissions
permissions: {}
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
# Important: Because of `pull_request_target`, this doesn't check out the PR,
# but rather the base branch of the PR, which is needed so we don't run untrusted code
- uses: actions/checkout@<VERSION>
with:
path: base
sparse-checkout: ci
- name: Resolving the merge commit
env:
GH_TOKEN: ${{ github.token }}
run: |
if mergedSha=$(base/ci/get-merge-commit.sh ${{ github.repository }} ${{ github.event.number }}); then
echo "Checking the merge commit $mergedSha"
echo "mergedSha=$mergedSha" >> "$GITHUB_ENV"
else
# Skipping so that no notifications are sent
echo "Skipping the rest..."
fi
rm -rf base
- uses: actions/checkout@<VERSION>
# Add this to _all_ subsequent steps to skip them
if: env.mergedSha
with:
ref: ${{ env.mergedSha }}
- ...
```

62
ci/get-merge-commit.sh Executable file
View File

@ -0,0 +1,62 @@
#!/usr/bin/env bash
# See ./README.md for docs
set -euo pipefail
log() {
echo "$@" >&2
}
if (( $# < 2 )); then
log "Usage: $0 GITHUB_REPO PR_NUMBER"
exit 99
fi
repo=$1
prNumber=$2
# Retry the API query this many times
retryCount=5
# Start with 5 seconds, but double every retry
retryInterval=5
while true; do
log "Checking whether the pull request can be merged"
prInfo=$(gh api \
-H "Accept: application/vnd.github+json" \
-H "X-GitHub-Api-Version: 2022-11-28" \
"/repos/$repo/pulls/$prNumber")
# Non-open PRs won't have their mergeability computed no matter what
state=$(jq -r .state <<< "$prInfo")
if [[ "$state" != open ]]; then
log "PR is not open anymore"
exit 1
fi
mergeable=$(jq -r .mergeable <<< "$prInfo")
if [[ "$mergeable" == "null" ]]; then
if (( retryCount == 0 )); then
log "Not retrying anymore. It's likely that GitHub is having internal issues: check https://www.githubstatus.com/"
exit 3
else
(( retryCount -= 1 )) || true
# null indicates that GitHub is still computing whether it's mergeable
# Wait a couple seconds before trying again
log "GitHub is still computing whether this PR can be merged, waiting $retryInterval seconds before trying again ($retryCount retries left)"
sleep "$retryInterval"
(( retryInterval *= 2 )) || true
fi
else
break
fi
done
if [[ "$mergeable" == "true" ]]; then
log "The PR can be merged"
jq -r .merge_commit_sha <<< "$prInfo"
else
log "The PR has a merge conflict"
exit 2
fi

View File

@ -26,9 +26,9 @@ in
config = mkIf cfg.enable {
# Module is upstream as of 6.10
boot.extraModulePackages = with config.boot.kernelPackages;
optional (kernelOlder "6.10") ipu6-drivers;
# Module is upstream as of 6.10,
# but still needs various out-of-tree i2c and the `intel-ipu6-psys` kernel driver
boot.extraModulePackages = with config.boot.kernelPackages; [ ipu6-drivers ];
hardware.firmware = with pkgs; [
ipu6-camera-bins

View File

@ -16,7 +16,6 @@ in {
libayatana-common
ubports-click
]) ++ (with pkgs.lomiri; [
content-hub
hfd-service
history-service
libusermetrics
@ -24,6 +23,7 @@ in {
lomiri-calculator-app
lomiri-camera-app
lomiri-clock-app
lomiri-content-hub
lomiri-docviewer-app
lomiri-download-manager
lomiri-filemanager-app
@ -129,7 +129,7 @@ in {
environment.pathsToLink = [
# Configs for inter-app data exchange system
"/share/content-hub/peers"
"/share/lomiri-content-hub/peers"
# Configs for inter-app URL requests
"/share/lomiri-url-dispatcher/urls"
# Splash screens & other images for desktop apps launched via lomiri-app-launch
@ -194,10 +194,6 @@ in {
};
users.groups.usermetrics = { };
# TODO content-hub cannot pass files between applications without asking AA for permissions. And alot of the Lomiri stack is designed with AA availability in mind. This might be a requirement to be closer to upstream?
# But content-hub currently fails to pass files between applications even with AA enabled, and we can get away without AA in many places. Let's see how this develops before requiring this for good.
# security.apparmor.enable = true;
};
meta.maintainers = lib.teams.lomiri.members;

View File

@ -12,9 +12,12 @@ let
RAILS_ENV = "production";
NODE_ENV = "production";
BOOTSNAP_CACHE_DIR="/var/cache/mastodon/precompile";
LD_PRELOAD = "${pkgs.jemalloc}/lib/libjemalloc.so";
# mastodon-web concurrency.
MASTODON_USE_LIBVIPS = "true";
# Concurrency mastodon-web
WEB_CONCURRENCY = toString cfg.webProcesses;
MAX_THREADS = toString cfg.webThreads;
@ -24,7 +27,7 @@ let
DB_NAME = cfg.database.name;
LOCAL_DOMAIN = cfg.localDomain;
SMTP_SERVER = cfg.smtp.host;
SMTP_PORT = toString(cfg.smtp.port);
SMTP_PORT = toString cfg.smtp.port;
SMTP_FROM_ADDRESS = cfg.smtp.fromAddress;
PAPERCLIP_ROOT_PATH = "/var/lib/mastodon/public-system";
PAPERCLIP_ROOT_URL = "/system";
@ -33,12 +36,12 @@ let
TRUSTED_PROXY_IP = cfg.trustedProxy;
}
// lib.optionalAttrs (cfg.redis.host != null) { REDIS_HOST = cfg.redis.host; }
// lib.optionalAttrs (cfg.redis.port != null) { REDIS_PORT = toString(cfg.redis.port); }
// lib.optionalAttrs (cfg.redis.port != null) { REDIS_PORT = toString cfg.redis.port; }
// lib.optionalAttrs (cfg.redis.createLocally && cfg.redis.enableUnixSocket) { REDIS_URL = "unix://${config.services.redis.servers.mastodon.unixSocket}"; }
// lib.optionalAttrs (cfg.database.host != "/run/postgresql" && cfg.database.port != null) { DB_PORT = toString cfg.database.port; }
// lib.optionalAttrs cfg.smtp.authenticate { SMTP_LOGIN = cfg.smtp.user; }
// lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_HOST = cfg.elasticsearch.host; }
// lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_PORT = toString(cfg.elasticsearch.port); }
// lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_PORT = toString cfg.elasticsearch.port; }
// lib.optionalAttrs (cfg.elasticsearch.host != null) { ES_PRESET = cfg.elasticsearch.preset; }
// lib.optionalAttrs (cfg.elasticsearch.user != null) { ES_USER = cfg.elasticsearch.user; }
// cfg.extraConfig;
@ -51,6 +54,9 @@ let
Group = cfg.group;
# Working directory
WorkingDirectory = cfg.package;
# Cache directory and mode
CacheDirectory = "mastodon";
CacheDirectoryMode = "0750";
# State directory and mode
StateDirectory = "mastodon";
StateDirectoryMode = "0750";
@ -127,7 +133,7 @@ let
description = "Mastodon sidekiq${jobClassLabel}";
wantedBy = [ "mastodon.target" ];
environment = env // {
PORT = toString(cfg.sidekiqPort);
PORT = toString cfg.sidekiqPort;
DB_POOL = threads;
};
serviceConfig = {
@ -309,7 +315,7 @@ in {
Voluntary Application Server Identification. A new keypair can
be generated by running:
`nix build -f '<nixpkgs>' mastodon; cd result; bin/rake webpush:generate_keys`
`nix build -f '<nixpkgs>' mastodon; cd result; RAILS_ENV=production bin/rake webpush:generate_keys`
If {option}`mastodon.vapidPrivateKeyFile`does not
exist, it and this file will be created with a new keypair.
@ -324,12 +330,57 @@ in {
type = lib.types.str;
};
activeRecordEncryptionDeterministicKeyFile = lib.mkOption {
description = ''
This key must be set to enable the Active Record Encryption feature within
Rails that Mastodon uses to encrypt and decrypt some database attributes.
A new Active Record keys can be generated by running:
`nix build -f '<nixpkgs>' mastodon; cd result; RAILS_ENV=production ./bin/rails db:encryption:init`
If this file does not exist, it will be created with a new Active Record
keys.
'';
default = "/var/lib/mastodon/secrets/active-record-encryption-deterministic-key";
type = lib.types.str;
};
activeRecordEncryptionKeyDerivationSaltFile = lib.mkOption {
description = ''
This key must be set to enable the Active Record Encryption feature within
Rails that Mastodon uses to encrypt and decrypt some database attributes.
A new Active Record keys can be generated by running:
`nix build -f '<nixpkgs>' mastodon; cd result; RAILS_ENV=production ./bin/rails db:encryption:init`
If this file does not exist, it will be created with a new Active Record
keys.
'';
default = "/var/lib/mastodon/secrets/active-record-encryption-key-derivation-salt";
type = lib.types.str;
};
activeRecordEncryptionPrimaryKeyFile = lib.mkOption {
description = ''
This key must be set to enable the Active Record Encryption feature within
Rails that Mastodon uses to encrypt and decrypt some database attributes.
A new Active Record keys can be generated by running:
`nix build -f '<nixpkgs>' mastodon; cd result; RAILS_ENV=production ./bin/rails db:encryption:init`
If this file does not exist, it will be created with a new Active Record
keys.
'';
default = "/var/lib/mastodon/secrets/active-record-encryption-primary-key";
type = lib.types.str;
};
secretKeyBaseFile = lib.mkOption {
description = ''
Path to file containing the secret key base.
A new secret key base can be generated by running:
`nix build -f '<nixpkgs>' mastodon; cd result; bin/rake secret`
`nix build -f '<nixpkgs>' mastodon; cd result; bin/bundle exec rails secret`
If this file does not exist, it will be created with a new secret key base.
'';
@ -342,7 +393,7 @@ in {
Path to file containing the OTP secret.
A new OTP secret can be generated by running:
`nix build -f '<nixpkgs>' mastodon; cd result; bin/rake secret`
`nix build -f '<nixpkgs>' mastodon; cd result; bin/bundle exec rails secret`
If this file does not exist, it will be created with a new OTP secret.
'';
@ -708,13 +759,28 @@ in {
script = ''
umask 077
if ! test -d /var/cache/mastodon/precompile; then
${cfg.package}/bin/bundle exec bootsnap precompile --gemfile ${cfg.package}/app ${cfg.package}/lib
fi
if ! test -f ${cfg.activeRecordEncryptionDeterministicKeyFile}; then
mkdir -p $(dirname ${cfg.activeRecordEncryptionDeterministicKeyFile})
bin/rails db:encryption:init | grep --only-matching "ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=[^ ]\+" | sed 's/^ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY=//' > ${cfg.activeRecordEncryptionDeterministicKeyFile}
fi
if ! test -f ${cfg.activeRecordEncryptionKeyDerivationSaltFile}; then
mkdir -p $(dirname ${cfg.activeRecordEncryptionKeyDerivationSaltFile})
bin/rails db:encryption:init | grep --only-matching "ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=[^ ]\+" | sed 's/^ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT=//' > ${cfg.activeRecordEncryptionKeyDerivationSaltFile}
fi
if ! test -f ${cfg.activeRecordEncryptionPrimaryKeyFile}; then
mkdir -p $(dirname ${cfg.activeRecordEncryptionPrimaryKeyFile})
bin/rails db:encryption:init | grep --only-matching "ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=[^ ]\+" | sed 's/^ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY=//' > ${cfg.activeRecordEncryptionPrimaryKeyFile}
fi
if ! test -f ${cfg.secretKeyBaseFile}; then
mkdir -p $(dirname ${cfg.secretKeyBaseFile})
bin/rake secret > ${cfg.secretKeyBaseFile}
bin/bundle exec rails secret > ${cfg.secretKeyBaseFile}
fi
if ! test -f ${cfg.otpSecretFile}; then
mkdir -p $(dirname ${cfg.otpSecretFile})
bin/rake secret > ${cfg.otpSecretFile}
bin/bundle exec rails secret > ${cfg.otpSecretFile}
fi
if ! test -f ${cfg.vapidPrivateKeyFile}; then
mkdir -p $(dirname ${cfg.vapidPrivateKeyFile}) $(dirname ${cfg.vapidPublicKeyFile})
@ -724,6 +790,9 @@ in {
fi
cat > /var/lib/mastodon/.secrets_env <<EOF
ACTIVE_RECORD_ENCRYPTION_DETERMINISTIC_KEY="$(cat ${cfg.activeRecordEncryptionDeterministicKeyFile})"
ACTIVE_RECORD_ENCRYPTION_KEY_DERIVATION_SALT="$(cat ${cfg.activeRecordEncryptionKeyDerivationSaltFile})"
ACTIVE_RECORD_ENCRYPTION_PRIMARY_KEY="$(cat ${cfg.activeRecordEncryptionPrimaryKeyFile})"
SECRET_KEY_BASE="$(cat ${cfg.secretKeyBaseFile})"
OTP_SECRET="$(cat ${cfg.otpSecretFile})"
VAPID_PRIVATE_KEY="$(cat ${cfg.vapidPrivateKeyFile})"
@ -802,7 +871,7 @@ in {
description = "Mastodon web";
environment = env // (if cfg.enableUnixSocket
then { SOCKET = "/run/mastodon-web/web.socket"; }
else { PORT = toString(cfg.webPort); }
else { PORT = toString cfg.webPort; }
);
serviceConfig = {
ExecStart = "${cfg.package}/bin/puma -C config/puma.rb";
@ -816,7 +885,7 @@ in {
# System Call Filtering
SystemCallFilter = [ ("~" + lib.concatStringsSep " " systemCallsList) "@chown" "pipe" "pipe2" ];
} // cfgService;
path = with pkgs; [ ffmpeg-headless file imagemagick ];
path = with pkgs; [ ffmpeg-headless file ];
};
systemd.services.mastodon-media-auto-remove = lib.mkIf cfg.mediaAutoRemove.enable {
@ -851,7 +920,7 @@ in {
};
locations."@proxy" = {
proxyPass = (if cfg.enableUnixSocket then "http://unix:/run/mastodon-web/web.socket" else "http://127.0.0.1:${toString(cfg.webPort)}");
proxyPass = (if cfg.enableUnixSocket then "http://unix:/run/mastodon-web/web.socket" else "http://127.0.0.1:${toString cfg.webPort}");
proxyWebsockets = true;
};
@ -903,7 +972,7 @@ in {
inherit (cfg) group;
};
})
(lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ cfg.package pkgs.imagemagick ])
(lib.attrsets.setAttrByPath [ cfg.user "packages" ] [ cfg.package ])
(lib.mkIf (cfg.redis.createLocally && cfg.redis.enableUnixSocket) {${config.services.mastodon.user}.extraGroups = [ "redis-mastodon" ];})
];

View File

@ -853,9 +853,12 @@ in
type = types.bool;
default = false;
description = ''
Resolves domains of proxyPass targets at runtime
and not only at start, you have to set
services.nginx.resolver, too.
Resolves domains of proxyPass targets at runtime and not only at startup.
This can be used as a workaround if nginx fails to start because of not-yet-working DNS.
:::{.warn}
`services.nginx.resolver` must be set for this option to work.
:::
'';
};

View File

@ -4,6 +4,52 @@ let
user = "alice";
description = "Alice Foobar";
password = "foobar";
# tmpfiles setup to make OCRing on terminal output more reliable
terminalOcrTmpfilesSetup =
{
pkgs,
lib,
config,
}:
let
white = "255, 255, 255";
black = "0, 0, 0";
colorSection = color: {
Color = color;
Bold = true;
Transparency = false;
};
terminalColors = pkgs.writeText "customized.colorscheme" (
lib.generators.toINI { } {
Background = colorSection white;
Foreground = colorSection black;
Color2 = colorSection black;
Color2Intense = colorSection black;
}
);
terminalConfig = pkgs.writeText "terminal.ubports.conf" (
lib.generators.toINI { } {
General = {
colorScheme = "customized";
fontSize = "16";
fontStyle = "Inconsolata";
};
}
);
confBase = "${config.users.users.${user}.home}/.config";
userDirArgs = {
mode = "0700";
user = user;
group = "users";
};
in
{
"${confBase}".d = userDirArgs;
"${confBase}/terminal.ubports".d = userDirArgs;
"${confBase}/terminal.ubports/customized.colorscheme".L.argument = "${terminalColors}";
"${confBase}/terminal.ubports/terminal.ubports.conf".L.argument = "${terminalConfig}";
};
in
{
greeter = makeTest (
@ -154,47 +200,9 @@ in
};
# Help with OCR
systemd.tmpfiles.settings =
let
white = "255, 255, 255";
black = "0, 0, 0";
colorSection = color: {
Color = color;
Bold = true;
Transparency = false;
};
terminalColors = pkgs.writeText "customized.colorscheme" (
lib.generators.toINI { } {
Background = colorSection white;
Foreground = colorSection black;
Color2 = colorSection black;
Color2Intense = colorSection black;
}
);
terminalConfig = pkgs.writeText "terminal.ubports.conf" (
lib.generators.toINI { } {
General = {
colorScheme = "customized";
fontSize = "16";
fontStyle = "Inconsolata";
};
}
);
confBase = "${config.users.users.${user}.home}/.config";
userDirArgs = {
mode = "0700";
user = user;
group = "users";
};
in
{
"10-lomiri-test-setup" = {
"${confBase}".d = userDirArgs;
"${confBase}/terminal.ubports".d = userDirArgs;
"${confBase}/terminal.ubports/customized.colorscheme".L.argument = "${terminalColors}";
"${confBase}/terminal.ubports/terminal.ubports.conf".L.argument = "${terminalConfig}";
};
};
systemd.tmpfiles.settings = {
"10-lomiri-test-setup" = terminalOcrTmpfilesSetup { inherit pkgs lib config; };
};
};
enableOCR = true;
@ -360,58 +368,20 @@ in
};
variables = {
# So we can test what content-hub is working behind the scenes
CONTENT_HUB_LOGGING_LEVEL = "2";
# So we can test what lomiri-content-hub is working behind the scenes
LOMIRI_CONTENT_HUB_LOGGING_LEVEL = "2";
};
systemPackages = with pkgs; [
# For a convenient way of kicking off content-hub peer collection
lomiri.content-hub.examples
# For a convenient way of kicking off lomiri-content-hub peer collection
lomiri.lomiri-content-hub.examples
];
};
# Help with OCR
systemd.tmpfiles.settings =
let
white = "255, 255, 255";
black = "0, 0, 0";
colorSection = color: {
Color = color;
Bold = true;
Transparency = false;
};
terminalColors = pkgs.writeText "customized.colorscheme" (
lib.generators.toINI { } {
Background = colorSection white;
Foreground = colorSection black;
Color2 = colorSection black;
Color2Intense = colorSection black;
}
);
terminalConfig = pkgs.writeText "terminal.ubports.conf" (
lib.generators.toINI { } {
General = {
colorScheme = "customized";
fontSize = "16";
fontStyle = "Inconsolata";
};
}
);
confBase = "${config.users.users.${user}.home}/.config";
userDirArgs = {
mode = "0700";
user = user;
group = "users";
};
in
{
"10-lomiri-test-setup" = {
"${confBase}".d = userDirArgs;
"${confBase}/terminal.ubports".d = userDirArgs;
"${confBase}/terminal.ubports/customized.colorscheme".L.argument = "${terminalColors}";
"${confBase}/terminal.ubports/terminal.ubports.conf".L.argument = "${terminalConfig}";
};
};
systemd.tmpfiles.settings = {
"10-lomiri-test-setup" = terminalOcrTmpfilesSetup { inherit pkgs lib config; };
};
};
enableOCR = true;
@ -484,9 +454,9 @@ in
# lomiri-terminal-app has a separate VM test to test its basic functionality
# for the LSS content-hub test to work reliably, we need to kick off peer collecting
machine.send_chars("content-hub-test-importer\n")
wait_for_text(r"(/build/source|hub.cpp|handler.cpp|void|virtual|const)") # awaiting log messages from content-hub
# for the LSS lomiri-content-hub test to work reliably, we need to kick off peer collecting
machine.send_chars("lomiri-content-hub-test-importer\n")
wait_for_text(r"(/build/source|hub.cpp|handler.cpp|void|virtual|const)") # awaiting log messages from lomiri-content-hub
machine.send_key("ctrl-c")
# Doing this here, since we need an in-session shell & separately starting a terminal again wastes time
@ -510,7 +480,7 @@ in
wait_for_text("Rotation Lock")
machine.screenshot("settings_open")
# lomiri-system-settings has a separate VM test, only test Lomiri-specific content-hub functionalities here
# lomiri-system-settings has a separate VM test, only test Lomiri-specific lomiri-content-hub functionalities here
# Make fullscreen, can't navigate to Background plugin via keyboard unless window has non-phone-like aspect ratio
toggle_maximise()
@ -536,7 +506,7 @@ in
# Peers should be loaded
wait_for_text("Morph") # or Gallery, but Morph is already packaged
machine.screenshot("settings_content-hub_peers")
machine.screenshot("settings_lomiri-content-hub_peers")
# Select Morph as content source
mouse_click(370, 100)
@ -544,11 +514,11 @@ in
# Expect Morph to be brought into the foreground, with its Downloads page open
wait_for_text("No downloads")
# If content-hub encounters a problem, it may have crashed the original application issuing the request.
# If lomiri-content-hub encounters a problem, it may have crashed the original application issuing the request.
# Check that it's still alive
machine.succeed("pgrep -u ${user} -f lomiri-system-settings")
machine.screenshot("content-hub_exchange")
machine.screenshot("lomiri-content-hub_exchange")
# Testing any more would require more applications & setup, the fact that it's already being attempted is a good sign
machine.send_key("esc")
@ -732,8 +702,17 @@ in
# Help with OCR
fonts.packages = [ pkgs.inconsolata ];
# Non-QWERTY keymap to test keymap patch
services.xserver.xkb.layout = "de";
services.xserver.xkb.layout = lib.strings.concatStringsSep "," [
# Start with a non-QWERTY keymap to test keymap patch
"de"
# Then a QWERTY one to test switching
"us"
];
# Help with OCR
systemd.tmpfiles.settings = {
"10-lomiri-test-setup" = terminalOcrTmpfilesSetup { inherit pkgs lib config; };
};
};
enableOCR = true;
@ -784,6 +763,30 @@ in
machine.send_chars("touch ${pwInput}\n")
machine.wait_for_file("/home/alice/${pwOutput}", 10)
# Issues with this keybind: input leaks to focused surface, may open launcher
# Don't have the keyboard indicator to handle this better
machine.send_key("meta_l-spc")
machine.wait_for_console_text('SET KEYMAP "us"')
# Handle keybind fallout
machine.sleep(10) # wait for everything to settle
machine.send_key("esc") # close launcher in case it was opened
machine.sleep(2) # wait for animation to finish
# Make sure input leaks are gone
machine.send_key("backspace")
machine.send_key("backspace")
machine.send_key("backspace")
machine.send_key("backspace")
machine.send_key("backspace")
machine.send_key("backspace")
machine.send_key("backspace")
machine.send_key("backspace")
machine.send_key("backspace")
machine.send_key("backspace")
machine.send_chars("touch ${pwInput}\n")
machine.wait_for_file("/home/alice/${pwInput}", 10)
machine.send_key("alt-f4")
'';
}

View File

@ -24,6 +24,8 @@ import ./make-test-python.nix ({ pkgs, ... }: {
system.build.privateKey = snakeOilPrivateKey;
system.build.publicKey = snakeOilPublicKey;
# needed to provide STC implementation for target
system.switch.enable = true;
};
target = { nodes, lib, ... }: let

View File

@ -54,11 +54,8 @@ stdenv.mkDerivation {
#!nix-shell -i bash -p curl gnugrep common-updater-scripts
set -x
set -eou pipefail;
url=$(curl -sI "https://discordapp.com/api/download/${
builtins.replaceStrings [ "discord-" "discord" ] [ "" "stable" ] pname
}?platform=osx&format=dmg" | grep -oP 'location: \K\S+')
version=''${url##https://dl*.discordapp.net/apps/osx/}
version=''${version%%/*.dmg}
url=$(curl -sI -o /dev/null -w '%header{location}' "https://discord.com/api/download/${branch}?platform=osx&format=dmg")
version=$(echo $url | grep -oP '/\K(\d+\.){2}\d+')
update-source-version ${lib.optionalString (!stdenv.buildPlatform.isDarwin) "pkgsCross.aarch64-darwin."}${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix --version-key=${branch}
'';
};

View File

@ -2,52 +2,52 @@
let
versions =
if stdenv.hostPlatform.isLinux then {
stable = "0.0.70";
ptb = "0.0.105";
canary = "0.0.492";
development = "0.0.28";
stable = "0.0.71";
ptb = "0.0.110";
canary = "0.0.502";
development = "0.0.30";
} else {
stable = "0.0.318";
ptb = "0.0.133";
canary = "0.0.591";
development = "0.0.49";
stable = "0.0.322";
ptb = "0.0.140";
canary = "0.0.611";
development = "0.0.53";
};
version = versions.${branch};
srcs = rec {
x86_64-linux = {
stable = fetchurl {
url = "https://dl.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
hash = "sha256-Ujlewrhbqal97hCG6+Iu+OqntWZJ/oY6ZHeL+HmoU38=";
url = "https://stable.dl2.discordapp.net/apps/linux/${version}/discord-${version}.tar.gz";
hash = "sha256-PMcavgUhL8c1YFaWsooZObDa7APMqCD1IaysED5fWac=";
};
ptb = fetchurl {
url = "https://dl-ptb.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
hash = "sha256-u/4wWssZxKlHrRW/Vd9pqUfqN2VQGYv1SDktpRsOayM=";
url = "https://ptb.dl2.discordapp.net/apps/linux/${version}/discord-ptb-${version}.tar.gz";
hash = "sha256-NV/0YKn1rG54Zkc9qAmpeb+4YbKjxhjTCdPOd84Lcc8=";
};
canary = fetchurl {
url = "https://dl-canary.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
hash = "sha256-NjcNgKYm1Twm8nN3sFlZCG/3x5fcSmX7X2On7CeZm0M=";
url = "https://canary.dl2.discordapp.net/apps/linux/${version}/discord-canary-${version}.tar.gz";
hash = "sha256-2DE7p3eT/mVGC+ejnTcTEhF7sEWyhfUfzj0gYTh+6Dw=";
};
development = fetchurl {
url = "https://dl-development.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
hash = "sha256-326KAuqt3VQSgyJAdsdc7YgrdF3vCVoJoKUCVC2UdaU=";
url = "https://development.dl2.discordapp.net/apps/linux/${version}/discord-development-${version}.tar.gz";
hash = "sha256-HxMJQd5fM1VNfrBey4SbnnBkFQYZgbxg4YTy6FIC9Ps=";
};
};
x86_64-darwin = {
stable = fetchurl {
url = "https://dl.discordapp.net/apps/osx/${version}/Discord.dmg";
hash = "sha256-Ot6IM6EAg4MQPp0JqvUOZNAor6Nr6luc6pGY+722GMo=";
url = "https://stable.dl2.discordapp.net/apps/osx/${version}/Discord.dmg";
hash = "sha256-RLAdcCcRrUtDSdaj/RdVLJGvufpIjZoMAKxp0Jyu17A=";
};
ptb = fetchurl {
url = "https://dl-ptb.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
hash = "sha256-FFp6CRgD/kpCVxJ4+es0DaOGaW5v2Aa+lzJdG2Zu8eY=";
url = "https://ptb.dl2.discordapp.net/apps/osx/${version}/DiscordPTB.dmg";
hash = "sha256-VGhvykujfzI7jwXE+lHTzqT0t08GaON6gCuf13po7wY=";
};
canary = fetchurl {
url = "https://dl-canary.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
hash = "sha256-TIXe8cy6feME0900R5aWyItZfUrUA8zXo0pqwQ79yAM=";
url = "https://canary.dl2.discordapp.net/apps/osx/${version}/DiscordCanary.dmg";
hash = "sha256-QC8RANqoyMAGKjTF0NNhz7wMt65D5LI1xYtd++dHXC4=";
};
development = fetchurl {
url = "https://dl-development.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
hash = "sha256-kfHnS1NHuPD7UR7XvMdtY2LPsDRJVQHk7/Nm+cR/KGc=";
url = "https://development.dl2.discordapp.net/apps/osx/${version}/DiscordDevelopment.dmg";
hash = "sha256-DhY8s7Mhzos0ygB/WuoE07WK6hoIh/FcETeIsffw+e0=";
};
};
aarch64-darwin = x86_64-darwin;
@ -78,7 +78,7 @@ let
meta = meta // { mainProgram = value.binaryName; };
}))
{
stable = rec {
stable = {
pname = "discord";
binaryName = "Discord";
desktopName = "Discord";

View File

@ -151,11 +151,8 @@ stdenv.mkDerivation rec {
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl gnugrep common-updater-scripts
set -eou pipefail;
url=$(curl -sI "https://discordapp.com/api/download/${
builtins.replaceStrings [ "discord-" "discord" ] [ "" "stable" ] pname
}?platform=linux&format=tar.gz" | grep -oP 'location: \K\S+')
version=''${url##https://dl*.discordapp.net/apps/linux/}
version=''${version%%/*.tar.gz}
url=$(curl -sI -o /dev/null -w '%header{location}' "https://discord.com/api/download/${branch}?platform=linux&format=tar.gz")
version=$(echo $url | grep -oP '/\K(\d+\.){2}\d+')
update-source-version ${pname} "$version" --file=./pkgs/applications/networking/instant-messengers/discord/default.nix --version-key=${branch}
'';
};

View File

@ -13,18 +13,19 @@
gtksourceview5,
xdg-utils,
ollama,
vte-gtk4,
}:
python3Packages.buildPythonApplication rec {
pname = "alpaca";
version = "2.0.6";
version = "2.6.0";
pyproject = false; # Built with meson
src = fetchFromGitHub {
owner = "Jeffser";
repo = "Alpaca";
rev = "refs/tags/${version}";
hash = "sha256-4c6pisd3o7mycivHd1QZ2N7s8pYzrQXiZMbVvl5ciPA=";
hash = "sha256-XXxfbchQ1l6L8KflqjlGIiyRbG/dI5ok0ExlROavXYg=";
};
nativeBuildInputs = [
@ -40,6 +41,7 @@ python3Packages.buildPythonApplication rec {
buildInputs = [
libadwaita
gtksourceview5
vte-gtk4
];
dependencies = with python3Packages; [

View File

@ -1,9 +1,9 @@
{
"owner": "advplyr",
"repo": "audiobookshelf",
"rev": "ce213c3d89458baeb77324ce59a5f2137740564e",
"hash": "sha256-7vPhvsjGJQvus5Mmx8543OuBeuPWC/4cLfHHYmN2lnk=",
"version": "2.13.4",
"depsHash": "sha256-1CmtuzE8R6zkb0DT7gt9MrxErAw0mqY2AkJZh3PjuBQ=",
"clientDepsHash": "sha256-BfrVN70i1e4JWELxLS0jliHLfG4/kN8tj8aQOjsnZ/M="
"rev": "cf5598aeb9b086a28e853d6a89b82a7467fd6969",
"hash": "sha256-tObC7QbdwpAlt97eXB9QzZEaQcquuST+8nC6lYEXTUM=",
"version": "2.14.0",
"depsHash": "sha256-nVsmV3Vms2S9oM7duFfgt+go1+wM2JniI8B3UFmv/TE=",
"clientDepsHash": "sha256-oaoGxcMs8XQVaRx8UO9NSThqbHuZsA4fm8OGlSiaKO0="
}

View File

@ -119,6 +119,17 @@ let
overrideAzureMgmtPackage super.azure-mgmt-batchai "7.0.0b1" "zip"
"sha256-mT6vvjWbq0RWQidugR229E8JeVEiobPD3XA/nDM3I6Y=";
azure-mgmt-billing =
(overrideAzureMgmtPackage super.azure-mgmt-billing "6.0.0" "zip"
"sha256-1PXFpBiKRW/h6zK2xF9VyiBpx0vkHrdpIYQLOfL1wH8="
).overridePythonAttrs
(attrs: {
propagatedBuildInputs = attrs.propagatedBuildInputs or [ ] ++ [
self.msrest
self.msrestazure
];
});
# AttributeError: type object 'CustomDomainsOperations' has no attribute 'disable_custom_https'
azure-mgmt-cdn =
overrideAzureMgmtPackage super.azure-mgmt-cdn "12.0.0" "zip"

View File

@ -9,16 +9,16 @@
rustPlatform.buildRustPackage rec {
pname = "boxbuddy";
version = "2.2.12";
version = "2.2.13";
src = fetchFromGitHub {
owner = "Dvlv";
repo = "BoxBuddyRS";
rev = version;
hash = "sha256-PoPIIwe2SlK/iQTyqIhMG0dRobU98L5hnOciMmi9coo=";
hash = "sha256-47LOwBm7ql3Nvx6PZ2+x5aR9LSpzc8xuixdvKGdNS94=";
};
cargoHash = "sha256-En5TVCW/URJEry4sTd+vdi8K1YO2L0X5pYu/TGsrx6U=";
cargoHash = "sha256-W4W2tnnNgBcGD0/t5pobj4ca/YrRkHE1l5dIVe21KPU=";
# The software assumes it is installed either in flatpak or in the home directory
# so the xdg data path needs to be patched here

View File

@ -1,20 +1,21 @@
{ lib
, config
, fetchFromGitHub
, cmake
, cctools
, libiconv
, llvmPackages
, ninja
, openssl
, python3Packages
, ragel
, yasm
, zlib
, cudaSupport ? config.cudaSupport
, cudaPackages ? {}
, llvmPackages_12
, pythonSupport ? false
{
lib,
config,
fetchFromGitHub,
cmake,
cctools,
libiconv,
llvmPackages,
ninja,
openssl,
python3Packages,
ragel,
yasm,
zlib,
cudaSupport ? config.cudaSupport,
cudaPackages ? { },
llvmPackages_12,
pythonSupport ? false,
}:
let
inherit (llvmPackages) stdenv;
@ -22,13 +23,13 @@ in
stdenv.mkDerivation (finalAttrs: {
pname = "catboost";
version = "1.2.5";
version = "1.2.7";
src = fetchFromGitHub {
owner = "catboost";
repo = "catboost";
rev = "refs/tags/v${finalAttrs.version}";
hash = "sha256-2dfCCCa0LheytkLRbYuBd25M320f1kbhBWKIVjslor0=";
hash = "sha256-I3geFdVQ1Pm61eRXi+ueaxel3QRb8EJV9f4zV2Q7kk4=";
};
patches = [
@ -50,33 +51,50 @@ stdenv.mkDerivation (finalAttrs: {
done
'';
outputs = [ "out" "dev" ];
outputs = [
"out"
"dev"
];
nativeBuildInputs = [
cmake
llvmPackages.bintools
ninja
(python3Packages.python.withPackages (ps: with ps; [ six ]))
ragel
yasm
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
cctools
] ++ lib.optionals cudaSupport (with cudaPackages; [
cuda_nvcc
]);
nativeBuildInputs =
[
cmake
llvmPackages.bintools
ninja
(python3Packages.python.withPackages (ps: with ps; [ six ]))
ragel
yasm
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
cctools
]
++ lib.optionals cudaSupport (
with cudaPackages;
[
cuda_nvcc
]
);
buildInputs = [
openssl
zlib
] ++ lib.optionals stdenv.hostPlatform.isDarwin [
libiconv
] ++ lib.optionals cudaSupport (with cudaPackages; [
cuda_cudart
cuda_cccl
libcublas
]);
buildInputs =
[
openssl
zlib
]
++ lib.optionals stdenv.hostPlatform.isDarwin [
libiconv
]
++ lib.optionals cudaSupport (
with cudaPackages;
[
cuda_cudart
cuda_cccl
libcublas
]
);
env = {
PROGRAM_VERSION = finalAttrs.version;
# catboost requires clang 14+ for build, but does clang 12 for cuda build.
# after bumping the default version of llvm, check for compatibility with the cuda backend and pin it.
# see https://catboost.ai/en/docs/installation/build-environment-setup-for-cmake#compilers,-linkers-and-related-tools
@ -112,10 +130,16 @@ stdenv.mkDerivation (finalAttrs: {
library, used for ranking, classification, regression and other machine
learning tasks for Python, R, Java, C++. Supports computation on CPU and GPU.
'';
changelog = "https://github.com/catboost/catboost/releases/tag/v${finalAttrs.version}";
license = licenses.asl20;
platforms = platforms.unix;
homepage = "https://catboost.ai";
maintainers = with maintainers; [ PlushBeaver natsukium ];
maintainers = with maintainers; [
PlushBeaver
natsukium
];
mainProgram = "catboost";
# /nix/store/hzxiynjmmj35fpy3jla7vcqwmzj9i449-Libsystem-1238.60.2/include/sys/_types/_mbstate_t.h:31:9: error: unknown type name '__darwin_mbstate_t'
broken = stdenv.hostPlatform.isDarwin && stdenv.hostPlatform.isx86_64;
};
})

View File

@ -1,16 +1,16 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ed6c53b220..5c6fb8f157 100644
index 24ffd1225a..700adcc246 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -29,7 +29,6 @@ include(cmake/global_flags.cmake)
@@ -39,7 +39,6 @@ include(cmake/global_flags.cmake)
include(cmake/global_vars.cmake)
include(cmake/archive.cmake)
include(cmake/common.cmake)
-include(cmake/conan.cmake)
-include(cmake/conan1_deprecated.cmake)
include(cmake/cuda.cmake)
include(cmake/cython.cmake)
include(cmake/fbs.cmake)
@@ -38,21 +37,6 @@ include(cmake/recursive_library.cmake)
@@ -48,21 +47,6 @@ include(cmake/recursive_library.cmake)
include(cmake/shared_libs.cmake)
include(cmake/swig.cmake)
@ -24,11 +24,16 @@ index ed6c53b220..5c6fb8f157 100644
- BUILD missing
- REMOTE conancenter
- SETTINGS ${settings}
- ENV "CONAN_CMAKE_GENERATOR=${CMAKE_GENERATOR}"
- CONF "tools.cmake.cmaketoolchain:generator=${CMAKE_GENERATOR}"
- ENV "CONAN_CMAKE_GENERATOR=${CMAKE_GENERATOR}"
- CONF "tools.cmake.cmaketoolchain:generator=${CMAKE_GENERATOR}"
- )
-endif()
-
if (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND NOT HAVE_CUDA)
include(CMakeLists.linux-x86_64.txt)
elseif (CMAKE_SYSTEM_NAME STREQUAL "Linux" AND CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" AND HAVE_CUDA)
@@ -93,4 +77,3 @@ elseif (ANDROID AND CMAKE_ANDROID_ARCH STREQUAL "x86")
elseif (ANDROID AND CMAKE_ANDROID_ARCH STREQUAL "x86_64")
include(CMakeLists.android-x86_64.txt)
endif()
-

View File

@ -0,0 +1,52 @@
{
lib,
stdenv,
buildGoModule,
fetchFromGitHub,
testers,
harbor-cli,
installShellFiles,
}:
buildGoModule rec {
pname = "harbor-cli";
version = "0.0.1";
src = fetchFromGitHub {
owner = "goharbor";
repo = "harbor-cli";
rev = "v${version}";
hash = "sha256-WSADuhr6p8N0Oh1xIG7yItM6t0EWUiAkzNbdKsSc4WA=";
};
vendorHash = "sha256-UUD9/5+McR1t5oO4/6TSScT7hhSKM0OpBf94LVQG1Pw=";
nativeBuildInputs = [ installShellFiles ];
ldflags = [
"-s"
"-w"
"-X github.com/goharbor/harbor-cli/cmd/harbor/internal/version.Version=${version}"
];
postInstall = lib.optionalString (stdenv.buildPlatform.canExecute stdenv.hostPlatform) ''
installShellCompletion --cmd harbor \
--bash <($out/bin/harbor completion bash) \
--fish <($out/bin/harbor completion fish) \
--zsh <($out/bin/harbor completion zsh)
'';
passthru.tests.version = testers.testVersion {
package = harbor-cli;
command = "harbor version";
};
meta = {
homepage = "https://github.com/goharbor/harbor-cli";
description = "Command-line tool facilitates seamless interaction with the Harbor container registry";
changelog = "https://github.com/goharbor/harbor-cli/releases/tag/v${version}";
license = lib.licenses.asl20;
maintainers = with lib.maintainers; [ aaronjheng ];
mainProgram = "harbor";
};
}

View File

@ -0,0 +1,31 @@
{
lib,
stdenv,
fetchurl,
automake,
libusb1,
}:
stdenv.mkDerivation {
pname = "libphidget22";
version = "0-unstable-2024-04-11";
src = fetchurl {
url = "https://cdn.phidgets.com/downloads/phidget22/libraries/linux/libphidget22.tar.gz";
hash = "sha256-mDoYVs0LhBb3+vzKjzYr9EmcrztmA4cy9xh5ONxHaxI=";
};
nativeBuildInputs = [ automake ];
buildInputs = [ libusb1 ];
strictDeps = true;
meta = {
description = "Phidget Inc sensor boards and electronics Library";
homepage = "https://www.phidgets.com/docs/OS_-_Linux";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ mksafavi ];
platforms = lib.platforms.linux;
};
}

View File

@ -0,0 +1,35 @@
{
lib,
stdenv,
fetchurl,
automake,
libusb1,
libphidget22,
}:
stdenv.mkDerivation {
pname = "libphidget22extra";
version = "0-unstable-2024-04-11";
src = fetchurl {
url = "https://cdn.phidgets.com/downloads/phidget22/libraries/linux/libphidget22extra.tar.gz";
hash = "sha256-UD6Crr1dl7c3NOAVNi3xrXJI3OYPLZBJX1MXVvbyEUE=";
};
nativeBuildInputs = [ automake ];
buildInputs = [
libphidget22
libusb1
];
strictDeps = true;
meta = {
description = "Phidget Inc sensor boards and electronics extras library";
homepage = "https://www.phidgets.com/docs/OS_-_Linux";
license = lib.licenses.bsd3;
maintainers = with lib.maintainers; [ mksafavi ];
platforms = lib.platforms.linux;
};
}

View File

@ -8,16 +8,16 @@
buildNpmPackage rec {
pname = "redocly";
version = "1.18.1";
version = "1.25.5";
src = fetchFromGitHub {
owner = "Redocly";
repo = "redocly-cli";
rev = "@redocly/cli@${version}";
hash = "sha256-Y09tGm3Sje8gd+6tUyBTCt7HjL2CQ/vo/ExLDnywvcQ=";
hash = "sha256-pVSmrORa6KcAwllYepwra8QpnlfFoB9+noevLSmoWzY=";
};
npmDepsHash = "sha256-WzMFKMW/YyAH3ZoOeIcXIum15cJmPGp96xSYb9QCaWI=";
npmDepsHash = "sha256-nFRKC3xM+vq9SDeIelUqE/ZSSCSke0G0Qm629/s6WO8=";
npmBuildScript = "prepare";

View File

@ -6,12 +6,12 @@
gitUpdater,
nixosTests,
cmake,
content-hub,
exiv2,
gettext,
gst_all_1,
libusermetrics,
lomiri-action-api,
lomiri-content-hub,
lomiri-ui-toolkit,
lomiri-thumbnailer,
pkg-config,
@ -145,9 +145,9 @@ stdenv.mkDerivation (finalAttrs: {
qzxing
# QML
content-hub
libusermetrics
lomiri-action-api
lomiri-content-hub
lomiri-ui-toolkit
lomiri-thumbnailer
qtpositioning
@ -192,7 +192,7 @@ stdenv.mkDerivation (finalAttrs: {
export QML2_IMPORT_PATH=${
listToQtVar qtbase.qtQmlPrefix [
lomiri-ui-toolkit
content-hub
lomiri-content-hub
lomiri-thumbnailer
]
}
@ -203,7 +203,7 @@ stdenv.mkDerivation (finalAttrs: {
ln -s $out/share/lomiri-camera-app/assets/lomiri-camera-app-splash.svg $out/share/lomiri-app-launch/splash/lomiri-camera-app.svg
ln -s $out/share/lomiri-camera-app/assets/lomiri-barcode-reader-app-splash.svg $out/share/lomiri-app-launch/splash/lomiri-barcode-reader-app.svg
install -Dm644 ../camera-contenthub.json $out/share/content-hub/peers/lomiri-camera-app
install -Dm644 ../camera-contenthub.json $out/share/lomiri-content-hub/peers/lomiri-camera-app
'';
dontWrapGApps = true;

View File

@ -6,10 +6,10 @@
gitUpdater,
nixosTests,
cmake,
content-hub,
geonames,
gettext,
libusermetrics,
lomiri-content-hub,
lomiri-sounds,
lomiri-ui-toolkit,
makeWrapper,
@ -124,8 +124,8 @@ stdenv.mkDerivation (finalAttrs: {
qtbase
# QML
content-hub
libusermetrics
lomiri-content-hub
lomiri-ui-toolkit
qtdeclarative
qtmultimedia
@ -172,7 +172,7 @@ stdenv.mkDerivation (finalAttrs: {
export QML2_IMPORT_PATH=${
listToQtVar qtbase.qtQmlPrefix (
[
content-hub
lomiri-content-hub
lomiri-ui-toolkit
qtmultimedia
u1db-qt

View File

@ -7,9 +7,9 @@
gitUpdater,
nixosTests,
cmake,
content-hub,
gettext,
libreoffice-unwrapped,
lomiri-content-hub,
lomiri-ui-toolkit,
pkg-config,
poppler,
@ -21,61 +21,16 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-docviewer-app";
version = "3.0.4";
version = "3.1.0";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/apps/lomiri-docviewer-app";
rev = "v${finalAttrs.version}";
hash = "sha256-xUBE+eSAfG2yMlE/DI+6JHQx+3HiNwtSTv/P4YOAE7Y=";
hash = "sha256-zesBZmaMiMJwHtj3SoaNeHPiM9VNGEa4nTIiG8nskqI=";
};
patches = [
# Remove when version > 3.0.4
(fetchpatch {
name = "0001-lomiri-docviewer-app-Set-gettext-domain.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/8dc2c911817c45451ff341e4ae4b841bcc134945.patch";
hash = "sha256-vP6MYl7qhJzkgtnVelMMIbc0ZkHxC1s3abUXJ2zVi4w=";
})
(fetchpatch {
name = "0002-lomiri-docviewer-app-Install-splash-file.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/ef20bbdd5e80040bf11273a5fc2964400086fdc9.patch";
hash = "sha256-ylPFn53PJRyyzhN1SxtmNFMFeDsV9UxyQhAqULA5PJM=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/72 merged & in release
(fetchpatch {
name = "1001-lomiri-docviewer-app-Stop-using-qt5_use_modules.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/120c81dd71356f2e06ef5c44d114b665236a7382.patch";
hash = "sha256-4VCw90qYnQ/o67ndp9o8h+wUl2IUpmVGb9xyY55AMIQ=";
})
(fetchpatch {
name = "1002-lomiri-docviewer-app-Move-Qt-find_package-to-top-level.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/43ee96a3a33b7a8f04e95f434982bcc60ba4b257.patch";
hash = "sha256-3LggdNo4Yak4SVAD/4/mMCl8PjZy1dIx9i5hKHM5fJU=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/73 merged & in release
(fetchpatch {
name = "1011-lomiri-docviewer-app-Call-i18n-bindtextdomain.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/67599a841917304f76ffa1167a217718542a8b46.patch";
hash = "sha256-nbi3qX14kWtFcXrxAD41IeybDIRTNfUdRgSP1vDI/Hs=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/74 merged & in release
(fetchpatch {
name = "1021-lomiri-docviewer-app-Use-GNUInstallDirs-more-better.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/40a860a118077c05692002db694be77ea62dc5b3.patch";
hash = "sha256-/zhpIdqZ7WsU4tx4/AZs5w8kEopjH2boiHdHaJk5RXk=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/75 merged & in release
(fetchpatch {
name = "1031-lomiri-docviewer-app-Use-BUILD_TESTING.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/6f1eb739a3e0bf0ba847f94f8ea8411e0a385c2d.patch";
hash = "sha256-yVuYG+1JGo/I4TVRZ3UQeO/TJ8GiFO5BJ9Bs7glK7hg=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/76 merged & in release
# fetchpatch2 because there's a file rename
(fetchpatch2 {
@ -84,11 +39,11 @@ stdenv.mkDerivation (finalAttrs: {
hash = "sha256-KdHyKXM0hMMIFkuDn5JZJOEuitWAXT2QQOuR+1AolP0=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/77 merged & in release
# Remove when https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/merge_requests/81 merged & in release
(fetchpatch {
name = "1051-lomiri-docviewer-app-Install-content-hub-lomiri-url-dispatcher-files.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/98f5ab9d51ba05e8c3ed1991c0b67d3922b5ba90.patch";
hash = "sha256-JA26ga1CNOdbis87lSzqbUbs94Oc1vlxraXZxx3dsu8=";
name = "1051-lomiri-docviewer-app-XDGify-icon.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-docviewer-app/-/commit/a319e648ba15a7868d9ceb3a77ea15ad196e515b.patch";
hash = "sha256-JMSnN8EyWPHhqHzaJxy3JIhNaOvPLYkVDnNCrPGbO4E=";
})
];
@ -98,7 +53,6 @@ stdenv.mkDerivation (finalAttrs: {
# We don't want absolute paths in desktop files
substituteInPlace data/CMakeLists.txt \
--replace-fail 'ICON "''${DATA_DIR}/''${ICON_FILE}"' 'ICON lomiri-docviewer-app' \
--replace-fail 'SPLASH "''${DATA_DIR}/''${SPLASH_FILE}"' 'SPLASH "lomiri-app-launch/splash/lomiri-docviewer-app.svg"'
'';
@ -118,7 +72,7 @@ stdenv.mkDerivation (finalAttrs: {
qtdeclarative
# QML
content-hub
lomiri-content-hub
lomiri-ui-toolkit
qtsystems
];
@ -133,9 +87,8 @@ stdenv.mkDerivation (finalAttrs: {
doCheck = false;
postInstall = ''
mkdir -p $out/share/{icons/hicolor/scalable/apps,lomiri-app-launch/splash}
mkdir -p $out/share/lomiri-app-launch/splash
ln -s $out/share/{lomiri-docviewer-app/docviewer-app.svg,icons/hicolor/scalable/apps/lomiri-docviewer-app.svg}
ln -s $out/share/{lomiri-docviewer-app/docviewer-app-splash.svg,lomiri-app-launch/splash/lomiri-docviewer-app.svg}
'';

View File

@ -2,13 +2,12 @@
stdenv,
lib,
fetchFromGitLab,
fetchpatch,
gitUpdater,
nixosTests,
biometryd,
cmake,
content-hub,
gettext,
lomiri-content-hub,
lomiri-thumbnailer,
lomiri-ui-extras,
lomiri-ui-toolkit,
@ -22,65 +21,22 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-filemanager-app";
version = "1.0.4";
version = "1.1.2";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/apps/lomiri-filemanager-app";
rev = "v${finalAttrs.version}";
hash = "sha256-vjGCTfXoqul1S7KUJXG6JwgZOc2etXWsdKbyQ/V3abA=";
hash = "sha256-XA1Gdb0Kpc3BEifmgHhQ38moKkCkYbhpr8wptnddZlk=";
};
patches = [
# This sets the *wrong* domain, but at least it sets *some* domain.
# Remove when version > 1.0.4
(fetchpatch {
name = "0001-lomiri-filemanager-app-Set-a-gettext-domain.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/b310434d2c25a3b446d3d975f3755eb473a833e8.patch";
hash = "sha256-gzFFzZCIxedMGW4fp6sonnHj/HmwqdqU5fvGhXUsSOI=";
})
# Set the *correct* domain.
# Remove when version > 1.0.4
(fetchpatch {
name = "0002-lomiri-filemanager-app-Fix-gettext-domain.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/2bb19aeef2baba8d12df1e4976becc08d7cf341d.patch";
hash = "sha256-wreOMMvBjf316N/XJv3VfI5f5N/VFiEraeadtgRStjA=";
})
# Bind domain to locale dir
# Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/112 merged & in release
(fetchpatch {
name = "0003-lomiri-filemanager-app-Call-i18n.bindtextdomain.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/ac0ab681c52c691d464cf94707b013b39675ad2d.patch";
hash = "sha256-mwpcHwMT2FcNC6KIZNuSWU/bA8XP8rEQKHn7t5m6npM=";
})
# Stop using deprecated qt5_use_modules
# Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/113 merged & in release
(fetchpatch {
name = "0004-lomiri-filemanager-app-Stop-using-qt5_use_modules.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/c2bfe927b16e660bf4730371b1e61e442e034780.patch";
hash = "sha256-wPOZP2FOaacEGj4SMS5Q/TO+/L11Qz7NTux4kA86Bcs=";
})
# Use pkg-config for smbclient flags
# Remove when https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/merge_requests/115 merged & in release
(fetchpatch {
name = "0005-lomiri-filemanager-app-Get-smbclient-flags-via-pkg-config.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-filemanager-app/-/commit/aa791da5999719724e0b0592765e8fa2962305c6.patch";
hash = "sha256-fFAYKBR28ym/n7fhP9O6VE2owarLxK8cN9QeExHFbtU=";
})
];
postPatch = ''
# Use correct QML install path, don't pull in autopilot test code (we can't run that system)
# Remove absolute paths from desktop file, https://github.com/NixOS/nixpkgs/issues/308324
substituteInPlace CMakeLists.txt \
--replace-fail 'qmake -query QT_INSTALL_QML' 'echo ${placeholder "out"}/${qtbase.qtQmlPrefix}' \
--replace-fail 'add_subdirectory(tests)' '#add_subdirectory(tests)' \
--replace-fail 'ICON ''${CMAKE_INSTALL_PREFIX}/''${DATA_DIR}/''${ICON_FILE}' 'ICON lomiri-filemanager-app' \
--replace-fail 'SPLASH ''${CMAKE_INSTALL_PREFIX}/''${DATA_DIR}/''${SPLASH_FILE}' 'SPLASH lomiri-app-launch/splash/lomiri-filemanager-app.svg'
--replace-fail 'SPLASH ''${DATA_DIR}/''${SPLASH_FILE}' 'SPLASH lomiri-app-launch/splash/lomiri-filemanager-app.svg'
# In case this ever gets run, at least point it to a correct-ish path
substituteInPlace tests/autopilot/CMakeLists.txt \
@ -103,7 +59,7 @@ stdenv.mkDerivation (finalAttrs: {
# QML
biometryd
content-hub
lomiri-content-hub
lomiri-thumbnailer
lomiri-ui-extras
lomiri-ui-toolkit
@ -117,14 +73,6 @@ stdenv.mkDerivation (finalAttrs: {
# No tests we can actually run (just autopilot)
doCheck = false;
postInstall = ''
# Some misc files don't get installed to the correct paths for us
mkdir -p $out/share/{content-hub/peers,icons/hicolor/scalable/apps,lomiri-app-launch/splash}
ln -s $out/share/lomiri-filemanager-app/content-hub.json $out/share/content-hub/peers/lomiri-filemanager-app
ln -s $out/share/lomiri-filemanager-app/filemanager.svg $out/share/icons/hicolor/scalable/apps/lomiri-filemanager-app.svg
ln -s $out/share/lomiri-filemanager-app/splash.svg $out/share/lomiri-app-launch/splash/lomiri-filemanager-app.svg
'';
passthru = {
tests.vm = nixosTests.lomiri-filemanager-app;
updateScript = gitUpdater { rev-prefix = "v"; };

View File

@ -6,11 +6,11 @@
gitUpdater,
nixosTests,
cmake,
content-hub,
exiv2,
imagemagick,
libglvnd,
libmediainfo,
lomiri-content-hub,
lomiri-thumbnailer,
lomiri-ui-extras,
lomiri-ui-toolkit,
@ -25,79 +25,30 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-gallery-app";
version = "3.0.2";
version = "3.1.0";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/apps/lomiri-gallery-app";
rev = "v${finalAttrs.version}";
hash = "sha256-nX9dTL4W0WxrwvszGd4AUIx4yUrghMM7ZMtGZLhZE/8=";
hash = "sha256-uKGPic9XYUj0rLA05i6GjLM+n17MYgiFJMWnLXHKmIU=";
};
patches = [
# Remove when version > 3.0.2
(fetchpatch {
name = "0001-lomiri-gallery-app-Newer-Evix2-compat.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/afa019b5e9071fbafaa9afb3b4effdae6e0774c5.patch";
hash = "sha256-gBc++6EQ7t3VcBZTknkIpC0bJ/P15oI+G0YoQWtjnSY=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/147 merged & in release
(fetchpatch {
name = "0002-lomiri-gallery-app-Stop-using-qt5_use_modules.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/0149c8d422c3e0889d7d523789dc65776a52c4f9.patch";
hash = "sha256-jS81F7KNbAn5J8sDDXzhXARNYAu6dEKcbNHpHp/3MaI=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/148 merged & in release
(fetchpatch {
name = "0003-lomiri-gallery-app-Fix-GNUInstallDirs.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/805121b362a9b486094e570053884b9ffa92b152.patch";
hash = "sha256-fyAqKjZ0g7Sw7fWP1IW4SpZ+g0xi/pH6RJie1K3doP0=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/149 merged & in release
(fetchpatch {
name = "0004-lomiri-gallery-app-Fix-icons.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/906966536363e80fe9906dee935d991955e8f842.patch";
hash = "sha256-LJ+ILhokceXFUvP/G1BEBE/J1/XUAmNBxu551x0Q6nk=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/150 merged & in release
(fetchpatch {
name = "0005-lomiri-gallery-app-Add-ENABLE_WERROR.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/fe32a3453b88cc3563e53ab124f669ce307e9688.patch";
hash = "sha256-nFCtY3857D5e66rIME+lj6x4exEfx9D2XGEgyWhemgI=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/151 merged & in release
(fetchpatch {
name = "0006-lomiri-gallery-app-BUILD_TESTING.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/51f3d5e643db5576b051da63c58ba3492c851e44.patch";
hash = "sha256-5aGx2xfCDgq/khgkzGsvUOmTIYALjyfn6W7IR5dldr8=";
})
(fetchpatch {
name = "0007-lomiri-gallery-app-Top-level-Qt5Test.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/c308c689c2841d71554ff6397a110d1a12016b70.patch";
hash = "sha256-fXVOKjnj4EPeby9iEp3mZRqx9MLqdF8SUVEouCkyDRc=";
})
# Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/152 merged & in release
(fetchpatch {
name = "0008-lomiri-gallery-app-bindtextdomain.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/90a79972741ee0c5dc734dba6c42afeb3ee6a699.patch";
hash = "sha256-YAmH0he5/rZYKWFyPzUFAKJuHhUTxB3q8zbLL7Spz/c=";
name = "0001-lomiri-gallery-app-bindtextdomain.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/592eff118cb5056886b73e6698f8941c7a16f2e0.patch";
hash = "sha256-aR/Lnzvq4RuRLI75mMd4xTGMAcijm1adSAGVFZZ++No=";
})
(fetchpatch {
name = "0002-lomiri-gallery-app-C++ify-i18n.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/commit/a7582abbe0acef4d49c77a4395bc22dbd1707ef3.patch";
hash = "sha256-qzqTXqIYX+enoOwwV9d9fxe7tVYLuh1WkL8Ij/Qx0H0=";
})
];
postPatch = ''
# 0003-lomiri-gallery-app-Fix-icons.patch cannot be fully applied via patches due to binary diffs
# Remove when https://gitlab.com/ubports/development/apps/lomiri-gallery-app/-/merge_requests/149 merged & in release
for size in 64x64 128x128 256x256; do
rm desktop/icons/hicolor/"$size"/apps/gallery-app.png
magick desktop/lomiri-gallery-app.svg -resize "$size" desktop/icons/hicolor/"$size"/apps/lomiri-gallery-app.png
done
# Make splash path in desktop file relative
substituteInPlace desktop/lomiri-gallery-app.desktop.in.in \
--replace-fail 'X-Lomiri-Splash-Image=@SPLASH@' 'X-Lomiri-Splash-Image=lomiri-app-launch/splash/lomiri-gallery-app.svg'
@ -130,7 +81,7 @@ stdenv.mkDerivation (finalAttrs: {
qtsvg
# QML
content-hub
lomiri-content-hub
lomiri-thumbnailer
lomiri-ui-extras
lomiri-ui-toolkit
@ -164,9 +115,6 @@ stdenv.mkDerivation (finalAttrs: {
# Link splash to splash dir
mkdir -p $out/share/lomiri-app-launch/splash
ln -s $out/share/{lomiri-gallery-app/lomiri-gallery-app-splash.svg,lomiri-app-launch/splash/lomiri-gallery-app.svg}
# Old name
mv $out/share/content-hub/peers/{,lomiri-}gallery-app
'';
passthru = {

View File

@ -9,7 +9,6 @@
biometryd,
cmake,
cmake-extras,
content-hub,
dbus,
deviceinfo,
geonames,
@ -24,6 +23,7 @@
libqofono,
libqtdbustest,
libqtdbusmock,
lomiri-content-hub,
lomiri-indicator-network,
lomiri-schemas,
lomiri-settings-components,
@ -122,8 +122,8 @@ stdenv.mkDerivation (finalAttrs: {
propagatedBuildInputs = [
ayatana-indicator-datetime
biometryd
content-hub
libqofono
lomiri-content-hub
lomiri-indicator-network
lomiri-schemas
lomiri-settings-components

View File

@ -1,7 +1,6 @@
{ stdenv
, lib
, fetchFromGitLab
, fetchpatch
, gitUpdater
, nixosTests
, cmake
@ -18,41 +17,15 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lomiri-terminal-app";
version = "2.0.2";
version = "2.0.3";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/apps/lomiri-terminal-app";
rev = "v${finalAttrs.version}";
hash = "sha256-mXbPmVcl5dL78QUp+w3o4im5ohUQCPTKWLSVqlNO0yo=";
hash = "sha256-374ATxF+XhoALzYv6DEyj6IYgb82Ch4zcmqK0RXmlzI=";
};
patches = [
# Stop usage of private qt5_use_modules function, seemingly unavailable in this package
# Remove when https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/merge_requests/103 merged & in release
(fetchpatch {
name = "0001-lomiri-terminal-app-Stop-using-qt5_use_modules.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/commit/db210c74e771a427066aebdc3a99cab6e782d326.patch";
hash = "sha256-op4+/eo8rBRMcW6MZ0rOEFReM7JBCck1B+AsgAPyqAI=";
})
# Explicitly bind textdomain, don't rely on hacky workaround in LUITK
# Remove when https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/merge_requests/104 merged & in release
(fetchpatch {
name = "0002-lomiri-terminal-app-Call-i18n.bindtextdomain.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/commit/7f9d419e29043f0d0922d2ac1dce5673e2723a01.patch";
hash = "sha256-HfIvGVbIdTasoHAfHysnzFLufQQ4lskym5HTekH+mjk=";
})
# Add more & correct existing usage of GNUInstallDirs variables
# Remove when https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/merge_requests/105 merged & in release
(fetchpatch {
name = "0003-lomiri-terminal-app-GNUInstallDirs-usage.patch";
url = "https://gitlab.com/ubports/development/apps/lomiri-terminal-app/-/commit/fcde1f05bb442c74b1dff95917fd7594f26e97a7.patch";
hash = "sha256-umxCMGNjyz0TVmwH0Gl0MpgjLQtkW9cHkUfpNJcoasE=";
})
];
postPatch = ''
substituteInPlace CMakeLists.txt \
--replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"

View File

@ -5,10 +5,10 @@
, gitUpdater
, nixosTests
, cmake
, content-hub
, gettext
, libapparmor
, lomiri-action-api
, lomiri-content-hub
, lomiri-ui-extras
, lomiri-ui-toolkit
, pkg-config
@ -27,23 +27,16 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "morph-browser";
version = "1.1.0";
version = "1.1.1";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/morph-browser";
rev = finalAttrs.version;
hash = "sha256-C5iXv8VS8Mm1ryxK7Vi5tVmiM01OSIFiTyH0vP9B/xA=";
hash = "sha256-VxSADFTlaxQUDc81TzGkx54mjAUgY2L+suQC9zYGKo0=";
};
patches = [
# Remove when https://gitlab.com/ubports/development/core/morph-browser/-/merge_requests/575 merged & in release
(fetchpatch {
name = "0001-morph-browser-tst_SessionUtilsTests-Set-permissions-on-temporary-xdg-runtime-directory.patch";
url = "https://gitlab.com/ubports/development/core/morph-browser/-/commit/e90206105b8b287fbd6e45ac37ca1cd259981928.patch";
hash = "sha256-5htFn+OGVVBn3mJQaZcF5yt0mT+2QRlKyKFesEhklfA=";
})
# Remove when https://gitlab.com/ubports/development/core/morph-browser/-/merge_requests/576 merged & in release
(fetchpatch {
name = "0002-morph-browser-Call-i18n-bindtextdomain-with-buildtime-determined-locale-path.patch";
@ -84,8 +77,8 @@ stdenv.mkDerivation (finalAttrs: {
qtwebengine
# QML
content-hub
lomiri-action-api
lomiri-content-hub
lomiri-ui-extras
lomiri-ui-toolkit
qqc2-suru-style
@ -132,7 +125,8 @@ stdenv.mkDerivation (finalAttrs: {
standalone = nixosTests.morph-browser;
# Lomiri-specific issues with the desktop file may break the entire session, make sure it still works
lomiri = nixosTests.lomiri;
lomiri-basics = nixosTests.lomiri.desktop-basics;
lomiri-appinteractions = nixosTests.lomiri.desktop-appinteractions;
};
};

View File

@ -7,8 +7,8 @@
gitUpdater,
nixosTests,
cmake,
content-hub,
intltool,
lomiri-content-hub,
lomiri-indicator-network,
lomiri-push-qml,
lomiri-thumbnailer,
@ -84,7 +84,7 @@ stdenv.mkDerivation (finalAttrs: {
];
buildInputs = [
content-hub
lomiri-content-hub
lomiri-indicator-network
lomiri-push-qml
lomiri-thumbnailer
@ -102,10 +102,10 @@ stdenv.mkDerivation (finalAttrs: {
];
postInstall = ''
mkdir -p $out/share/{applications,content-hub/peers,icons/hicolor/scalable/apps,lomiri-app-launch/splash,lomiri-url-dispatcher/urls}
mkdir -p $out/share/{applications,lomiri-content-hub/peers,icons/hicolor/scalable/apps,lomiri-app-launch/splash,lomiri-url-dispatcher/urls}
ln -s $out/share/teleports/teleports.desktop $out/share/applications/teleports.desktop
ln -s $out/share/teleports/teleports.content-hub $out/share/content-hub/peers/teleports
ln -s $out/share/teleports/teleports.content-hub $out/share/lomiri-content-hub/peers/teleports
ln -s $out/share/teleports/assets/icon.svg $out/share/icons/hicolor/scalable/apps/teleports.svg
ln -s $out/share/teleports/assets/splash.svg $out/share/lomiri-app-launch/splash/teleports.svg
ln -s $out/share/teleports/teleports.url-dispatcher $out/share/lomiri-url-dispatcher/urls/teleports.url-dispatcher

View File

@ -56,7 +56,7 @@ let
#### Services
biometryd = callPackage ./services/biometryd { };
content-hub = callPackage ./services/content-hub { };
lomiri-content-hub = callPackage ./services/lomiri-content-hub { };
hfd-service = callPackage ./services/hfd-service { };
history-service = callPackage ./services/history-service { };
lomiri-download-manager = callPackage ./services/lomiri-download-manager { };
@ -70,5 +70,6 @@ let
in
lib.makeScope libsForQt5.newScope packages
// lib.optionalAttrs config.allowAliases {
content-hub = lib.warn "`content-hub` was renamed to `lomiri-content-hub`." pkgs.lomiri.lomiri-content-hub; # Added on 2024-09-11
lomiri-system-settings-security-privacy = lib.warn "`lomiri-system-settings-security-privacy` upstream was merged into `lomiri-system-settings`. Please use `pkgs.lomiri.lomiri-system-settings-unwrapped` if you need to directly access the plugins that belonged to this project." pkgs.lomiri.lomiri-system-settings-unwrapped; # Added on 2024-08-08
}

View File

@ -1,25 +1,26 @@
{ stdenv
, lib
, fetchFromGitLab
, fetchpatch
, gitUpdater
, testers
, cmake
, dbus-test-runner
, pkg-config
, qtbase
, qtdeclarative
{
stdenv,
lib,
fetchFromGitLab,
fetchpatch,
gitUpdater,
testers,
cmake,
dbus-test-runner,
pkg-config,
qtbase,
qtdeclarative,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "u1db-qt";
version = "0.1.7";
version = "0.1.8";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/u1db-qt";
rev = finalAttrs.version;
hash = "sha256-qlWkxpiVEUbpsKhzR0s7SKaEFCLM2RH+v9XmJ3qLoGY=";
hash = "sha256-KmAEgnWHY0cDKJqRhZpY0fzVjNlEU67e559XEbAPpJI=";
};
outputs = [
@ -29,12 +30,11 @@ stdenv.mkDerivation (finalAttrs: {
];
patches = [
# Fixes some issues with the pkg-config file
# Remove when https://gitlab.com/ubports/development/core/u1db-qt/-/merge_requests/7 merged & in release
# Remove when https://gitlab.com/ubports/development/core/u1db-qt/-/merge_requests/8 merged & in release
(fetchpatch {
name = "0001-u1db-qt-Fix-pkg-config-files-includedir-variable.patch";
url = "https://gitlab.com/ubports/development/core/u1db-qt/-/commit/ddafbfadfad6dfc508a866835354a4701dda1fe1.patch";
hash = "sha256-entwjU9TiHuSuht7Cdl0k1v0cP7350a04/FXgTVhGmk=";
name = "0001-u1db-qt-Use-BUILD_TESTING.patch";
url = "https://gitlab.com/ubports/development/core/u1db-qt/-/commit/df5d526df26c056d54bfa532a3a3fa025d655690.patch";
hash = "sha256-CILMcvqXrTbEL/N2Tic4IsKLnTtmFJ2QbV3r4PsQ5t0=";
})
];
@ -48,10 +48,6 @@ stdenv.mkDerivation (finalAttrs: {
# For our automatic pkg-config output patcher to work, prefix must be used here
substituteInPlace libu1db-qt.pc.in \
--replace-fail 'libdir=''${exec_prefix}/lib' 'libdir=''${prefix}/lib'
'' + lib.optionalString (!finalAttrs.finalPackage.doCheck) ''
# Other locations add dependencies to custom check target from tests
substituteInPlace CMakeLists.txt \
--replace-fail 'add_subdirectory(tests)' 'add_custom_target(check COMMAND "echo check dummy")'
'';
strictDeps = true;
@ -67,9 +63,7 @@ stdenv.mkDerivation (finalAttrs: {
qtdeclarative
];
nativeCheckInputs = [
dbus-test-runner
];
nativeCheckInputs = [ dbus-test-runner ];
cmakeFlags = [
# Needs qdoc, see https://github.com/NixOS/nixpkgs/pull/245379
@ -104,14 +98,12 @@ stdenv.mkDerivation (finalAttrs: {
updateScript = gitUpdater { };
};
meta = with lib; {
meta = {
description = "Qt5 binding and QtQuick2 plugin for U1DB";
homepage = "https://gitlab.com/ubports/development/core/u1db-qt";
license = licenses.lgpl3Only;
maintainers = teams.lomiri.members;
platforms = platforms.linux;
pkgConfigModules = [
"libu1db-qt5"
];
license = lib.licenses.lgpl3Only;
maintainers = lib.teams.lomiri.members;
platforms = lib.platforms.linux;
pkgConfigModules = [ "libu1db-qt5" ];
};
})

View File

@ -1,29 +1,28 @@
{ stdenv
, lib
, fetchFromGitLab
, gitUpdater
, qmake
, qtdeclarative
, qtquickcontrols2
{
stdenv,
lib,
fetchFromGitLab,
gitUpdater,
qmake,
qtdeclarative,
qtquickcontrols2,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "qqc2-suru-style";
version = "0.20230206";
version = "0.20230630";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/qqc2-suru-style";
rev = finalAttrs.version;
hash = "sha256-ZLPuXnhlR1IDhGnprcdWHLnOeS6ZzVkFhQML0iKMjO8=";
rev = "refs/tags/${finalAttrs.version}";
hash = "sha256-kAgHsNWwUWxHg26bTMmlq8m9DR4+ob4pl/oUX7516hM=";
};
# QMake can't find Qt modules from buildInputs
strictDeps = false;
nativeBuildInputs = [
qmake
];
nativeBuildInputs = [ qmake ];
buildInputs = [
qtdeclarative
@ -34,12 +33,16 @@ stdenv.mkDerivation (finalAttrs: {
passthru.updateScript = gitUpdater { };
meta = with lib; {
meta = {
description = "Suru Style for QtQuick Controls 2";
homepage = "https://gitlab.com/ubports/development/core/qqc2-suru-style";
changelog = "https://gitlab.com/ubports/development/core/qqc2-suru-style/-/blob/${finalAttrs.version}/ChangeLog";
license = with licenses; [ gpl2Plus lgpl3Only cc-by-sa-30 ];
maintainers = teams.lomiri.members;
platforms = platforms.unix;
license = with lib.licenses; [
gpl2Plus
lgpl3Only
cc-by-sa-30
];
maintainers = lib.teams.lomiri.members;
platforms = lib.platforms.unix;
};
})

View File

@ -1,8 +1,6 @@
{ stdenv
, lib
, fetchFromGitLab
, fetchpatch
, fetchpatch2
, gitUpdater
, testers
, cmake
@ -30,14 +28,14 @@
}:
stdenv.mkDerivation (finalAttrs: {
pname = "content-hub";
version = "1.1.1";
pname = "lomiri-content-hub";
version = "2.0.0";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/content-hub";
repo = "development/core/lomiri-content-hub";
rev = finalAttrs.version;
hash = "sha256-sQeyJV+Wc6PHKGIefl/dfU06XqTdICsn+Xamjx3puiI=";
hash = "sha256-eA5oCoAZB7fWyWm0Sy6wXh0EW+h76bdfJ2dotr7gUC0=";
};
outputs = [
@ -46,44 +44,6 @@ stdenv.mkDerivation (finalAttrs: {
"examples"
];
patches = [
# Remove when version > 1.1.1
(fetchpatch {
name = "0001-content-hub-Migrate-to-GetConnectionCredentials.patch";
url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/9ec9df32f77383eec7994d8e3e6961531bc8464d.patch";
hash = "sha256-14dZosMTMa1FDGEMuil0r1Hz6vn+L9XC83NMAqC7Ol8=";
})
# Remove when https://gitlab.com/ubports/development/core/content-hub/-/merge_requests/34 merged & in release
(fetchpatch {
name = "0002-content-hub-import-Lomiri-Content-CMakeLists-Drop-qt-argument-to-qmlplugindump.patch";
url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/63a4baf1469de31c4fd50c69ed85d061f5e8e80a.patch";
hash = "sha256-T+6T9lXne6AhDFv9d7L8JNwdl8f0wjDmvSoNVPkHza4=";
})
# Remove when version > 1.1.1
# fetchpatch2 due to renames, https://github.com/NixOS/nixpkgs/issues/32084
(fetchpatch2 {
name = "0003-content-hub-Add-more-better-GNUInstallDirs-variables-usage.patch";
url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/3c5ca4a8ec125e003aca78c14521b70140856c25.patch";
hash = "sha256-kYN0eLwMyM/9yK+zboyEsoPKZMZ4SCXodVYsvkQr2F8=";
})
# Remove when version > 1.1.1
(fetchpatch {
name = "0004-content-hub-Fix-generation-of-transfer_files-and-moc_test_harness.patch";
url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/68899c75e77e1f34176b8a550d52794413e5070f.patch";
hash = "sha256-HAxePnzY/cL2c+o+Aw2N1pdr8rsbHGmRsH2EQkrBcHg=";
})
# Remove when https://gitlab.com/ubports/development/core/lomiri-content-hub/-/merge_requests/40 merged & in release
(fetchpatch {
name = "0006-content-hub-Fix-AppArmor-less-transfer.patch";
url = "https://gitlab.com/ubports/development/core/content-hub/-/commit/b58e5c8babf00ad7c402555c96254ce0165adb9e.patch";
hash = "sha256-a7x/0NiUBmmFlq96jkHyLCL0f5NIFh5JR/H+FQ/2GqI=";
})
];
postPatch = ''
substituteInPlace import/*/Content/CMakeLists.txt \
--replace-fail "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
@ -163,7 +123,7 @@ stdenv.mkDerivation (finalAttrs: {
moveToOutput share/applications/$exampleExe.desktop $examples
done
moveToOutput share/icons $examples
moveToOutput share/content-hub/peers $examples
moveToOutput share/lomiri-content-hub/peers $examples
'';
postFixup = ''
@ -178,20 +138,20 @@ stdenv.mkDerivation (finalAttrs: {
};
meta = {
description = "Content sharing/picking service";
description = "Content sharing/picking service for the Lomiri desktop";
longDescription = ''
content-hub is a mediation service to let applications share content between them,
lomiri-content-hub is a mediation service to let applications share content between them,
even if they are not running at the same time.
'';
homepage = "https://gitlab.com/ubports/development/core/content-hub";
changelog = "https://gitlab.com/ubports/development/core/content-hub/-/blob/${finalAttrs.version}/ChangeLog";
homepage = "https://gitlab.com/ubports/development/core/lomiri-content-hub";
changelog = "https://gitlab.com/ubports/development/core/lomiri-content-hub/-/blob/${finalAttrs.version}/ChangeLog";
license = with lib.licenses; [ gpl3Only lgpl3Only ];
mainProgram = "content-hub-service";
mainProgram = "lomiri-content-hub-service";
maintainers = lib.teams.lomiri.members;
platforms = lib.platforms.linux;
pkgConfigModules = [
"libcontent-hub"
"libcontent-hub-glib"
"liblomiri-content-hub"
"liblomiri-content-hub-glib"
];
};
})

View File

@ -1,39 +1,40 @@
{ stdenv
, lib
, fetchFromGitLab
, gitUpdater
, testers
, boost
, cmake
, cmake-extras
, dbus
, dbus-cpp
, gdk-pixbuf
, glib
, gst_all_1
, gtest
, libapparmor
, libexif
, pkg-config
, properties-cpp
, qtbase
, qtdeclarative
, shared-mime-info
, sqlite
, taglib
, udisks
, wrapQtAppsHook
{
stdenv,
lib,
fetchFromGitLab,
gitUpdater,
testers,
boost,
cmake,
cmake-extras,
dbus,
dbus-cpp,
gdk-pixbuf,
glib,
gst_all_1,
gtest,
libapparmor,
libexif,
pkg-config,
properties-cpp,
qtbase,
qtdeclarative,
shared-mime-info,
sqlite,
taglib,
udisks,
wrapQtAppsHook,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "mediascanner2";
version = "0.116";
version = "0.117";
src = fetchFromGitLab {
owner = "ubports";
repo = "development/core/mediascanner2";
rev = finalAttrs.version;
hash = "sha256-aRNT3DSPxz/vf6gqipf5Qc5zyDGFMHWONevAslwOrCY=";
hash = "sha256-e1vDPnIIfevXj9ODEEKJ2y4TiU0H+08aTf2vU+emdQk=";
};
outputs = [
@ -43,11 +44,7 @@ stdenv.mkDerivation (finalAttrs: {
postPatch = ''
substituteInPlace src/qml/MediaScanner.*/CMakeLists.txt \
--replace "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
# Lomiri desktop doesn't identify itself under Canonical's name anymore
substituteInPlace src/daemon/scannerdaemon.cc \
--replace 'Unity8' 'Lomiri'
--replace-fail "\''${CMAKE_INSTALL_LIBDIR}/qt5/qml" "\''${CMAKE_INSTALL_PREFIX}/${qtbase.qtQmlPrefix}"
'';
strictDeps = true;
@ -59,35 +56,33 @@ stdenv.mkDerivation (finalAttrs: {
wrapQtAppsHook
];
buildInputs = [
boost
cmake-extras
dbus
dbus-cpp
gdk-pixbuf
glib
libapparmor
libexif
properties-cpp
qtbase
qtdeclarative
shared-mime-info
sqlite
taglib
udisks
] ++ (with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
]);
buildInputs =
[
boost
cmake-extras
dbus
dbus-cpp
gdk-pixbuf
glib
libapparmor
libexif
properties-cpp
qtbase
qtdeclarative
shared-mime-info
sqlite
taglib
udisks
]
++ (with gst_all_1; [
gstreamer
gst-plugins-base
gst-plugins-good
]);
checkInputs = [
gtest
];
checkInputs = [ gtest ];
cmakeFlags = [
"-DENABLE_TESTS=${lib.boolToString finalAttrs.finalPackage.doCheck}"
];
cmakeFlags = [ (lib.cmakeBool "ENABLE_TESTS" finalAttrs.finalPackage.doCheck) ];
doCheck = stdenv.buildPlatform.canExecute stdenv.hostPlatform;
@ -108,15 +103,13 @@ stdenv.mkDerivation (finalAttrs: {
updateScript = gitUpdater { };
};
meta = with lib; {
meta = {
description = "Media scanner service & access library";
homepage = "https://gitlab.com/ubports/development/core/mediascanner2";
license = licenses.gpl3Only;
maintainers = teams.lomiri.members;
license = lib.licenses.gpl3Only;
maintainers = lib.teams.lomiri.members;
mainProgram = "mediascanner-service-2.0";
platforms = platforms.linux;
pkgConfigModules = [
"mediascanner-2.0"
];
platforms = lib.platforms.linux;
pkgConfigModules = [ "mediascanner-2.0" ];
};
})

View File

@ -1,7 +1,7 @@
{ lib, stdenv, fetchFromGitHub, glfw, freetype, openssl, makeWrapper, upx, boehmgc, xorg, binaryen, darwin }:
let
version = "0.4.4";
version = "0.4.8";
ptraceSubstitution = ''
#include <sys/types.h>
#include <sys/ptrace.h>
@ -10,12 +10,12 @@ let
# So we fix its rev to correspond to the V version.
vc = stdenv.mkDerivation {
pname = "v.c";
version = "0.4.4";
version = "0.4.8";
src = fetchFromGitHub {
owner = "vlang";
repo = "vc";
rev = "66eb8eae253d31fa5622e35a69580d9ad8efcccb";
hash = "sha256-YGlzr0Qq7+NtrnbaFPBuclzjOZBOnTe3BOhsuwdsQ5c=";
rev = "54beb1f416b404a06b894e6883a0e2368d80bc3e";
hash = "sha256-hofganRnWPRCjjsItwF2BKam4dCqzMCrjgWSjZLSrlo=";
};
# patch the ptrace reference for darwin
@ -46,7 +46,7 @@ stdenv.mkDerivation {
owner = "vlang";
repo = "v";
rev = version;
hash = "sha256-Aqecw8K+igHx5R34lQiWtdNfeGn+umcjcS4w0vXgpLM=";
hash = "sha256-V4f14TcuKW8unzlo6i/tE6MzSb3HAll478OU2LxiTPQ=";
};
propagatedBuildInputs = [ glfw freetype openssl ]

View File

@ -6,17 +6,18 @@
, gst_all_1
, ipu6-camera-hal
, libdrm
, libva
}:
stdenv.mkDerivation {
stdenv.mkDerivation rec {
pname = "icamerasrc-${ipu6-camera-hal.ipuVersion}";
version = "unstable-2023-10-23";
version = "unstable-2024-09-29";
src = fetchFromGitHub {
owner = "intel";
repo = "icamerasrc";
rev = "528a6f177732def4d5ebc17927220d8823bc8fdc";
hash = "sha256-Ezcm5OpF/NKvJf5sFeJyvNc2Uq0166GukC9MuNUV2Fs=";
rev = "refs/tags/20240926_1446";
hash = "sha256-BpIZxkPmSVKqPntwBJjGmCaMSYFCEZHJa4soaMAJRWE=";
};
nativeBuildInputs = [
@ -34,8 +35,10 @@ stdenv.mkDerivation {
buildInputs = [
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
gst_all_1.gst-plugins-bad
ipu6-camera-hal
libdrm
libva
];
NIX_CFLAGS_COMPILE = [

View File

@ -11,6 +11,7 @@
, ipu6-camera-bins
, libtool
, gst_all_1
, libdrm
# Pick one of
# - ipu6 (Tiger Lake)
@ -27,13 +28,13 @@ let
in
stdenv.mkDerivation {
pname = "${ipuVersion}-camera-hal";
version = "unstable-2023-09-25";
version = "unstable-2024-09-29";
src = fetchFromGitHub {
owner = "intel";
repo = "ipu6-camera-hal";
rev = "9fa05a90886d399ad3dda4c2ddc990642b3d20c9";
hash = "sha256-yS1D7o6dsQ4FQkjfwcisOxcP7Majb+4uQ/iW5anMb5c=";
rev = "f98f72b156563fe8373e4f8d017a9f609676bb33";
hash = "sha256-zVcgKW7/GHYd1oMvsaI77cPyj3G68dL+OXBJDz5+Td4=";
};
nativeBuildInputs = [
@ -41,12 +42,16 @@ stdenv.mkDerivation {
pkg-config
];
PKG_CONFIG_PATH = "${lib.makeLibraryPath [ ipu6-camera-bins ]}/${ipuTarget}/pkgconfig";
cmakeFlags = [
"-DIPU_VER=${ipuVersion}"
"-DTARGET_SUFFIX=-${ipuVersion}"
# missing libiacss
"-DUSE_PG_LITE_PIPE=ON"
"-DCMAKE_BUILD_TYPE=Release"
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
"-DCMAKE_INSTALL_SUB_PATH=${ipuTarget}"
"-DCMAKE_INSTALL_LIBDIR=lib"
];
NIX_CFLAGS_COMPILE = [
@ -61,21 +66,28 @@ stdenv.mkDerivation {
libtool
gst_all_1.gstreamer
gst_all_1.gst-plugins-base
libdrm
];
postPatch = ''
substituteInPlace src/platformdata/PlatformData.h \
--replace '/usr/share/' "${placeholder "out"}/share/"
--replace '/usr/share/' "${placeholder "out"}/share/" \
--replace '#define CAMERA_DEFAULT_CFG_PATH "/etc/camera/"' '#define CAMERA_DEFAULT_CFG_PATH "${placeholder "out"}/etc/camera/"'
'';
postInstall = ''
mkdir -p $out/include/${ipuTarget}/
cp -r $src/include $out/include/${ipuTarget}/libcamhal
'';
postFixup = ''
for lib in $out/lib/*.so; do
patchelf --add-rpath "${lib.makeLibraryPath [ ipu6-camera-bins ]}/${ipuTarget}" $lib
patchelf --add-rpath "${ipu6-camera-bins}/lib" $lib
done
'';
passthru = {
inherit ipuVersion;
inherit ipuVersion ipuTarget;
};
meta = with lib; {

View File

@ -19,7 +19,7 @@
buildPythonPackage rec {
pname = "aiortm";
version = "0.9.11";
version = "0.9.12";
pyproject = true;
disabled = pythonOlder "3.12";
@ -28,7 +28,7 @@ buildPythonPackage rec {
owner = "MartinHjelmare";
repo = "aiortm";
rev = "refs/tags/v${version}";
hash = "sha256-uP+nQZA6ZdCAy3E4a1jcm+3X1Fe6n+7v/6unX423jfw=";
hash = "sha256-PTg+/Iqjj5V5XJNDAJva/BvaOl6qyjeqrjxy0RLAvEc=";
};
pythonRelaxDeps = [ "typer" ];

View File

@ -1,45 +1,46 @@
{
lib,
buildPythonPackage,
fetchPypi,
msrestazure,
azure-common,
azure-mgmt-core,
azure-mgmt-nspkg,
buildPythonPackage,
fetchPypi,
isodate,
pythonOlder,
setuptools,
typing-extensions,
}:
buildPythonPackage rec {
pname = "azure-mgmt-billing";
version = "6.0.0"; # pypi's 0.2.0 doesn't build ootb
format = "setuptools";
version = "7.0.0";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
sha256 = "d4f5c5a4188a456fe1eb32b6c45f55ca2069c74be41eb76921840b39f2f5c07f";
extension = "zip";
pname = "azure_mgmt_billing";
inherit version;
hash = "sha256-jgplxlEQtTpCk35b7WrgDvydYgaXLZa/1KdOgMhcLXs=";
};
propagatedBuildInputs = [
msrestazure
build-system = [ setuptools ];
dependencies = [
azure-common
azure-mgmt-core
azure-mgmt-nspkg
isodate
typing-extensions
];
preBuild = ''
rm -rf azure_bdist_wheel.py
substituteInPlace setup.cfg \
--replace "azure-namespace-package = azure-mgmt-nspkg" ""
'';
pythonNamespaces = [ "azure.mgmt" ];
# has no tests
# Module has no tests
doCheck = false;
meta = with lib; {
description = "This is the Microsoft Azure Billing Client Library";
homepage = "https://github.com/Azure/azure-sdk-for-python";
homepage = "https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/billing/azure-mgmt-billing";
changelog = "https://github.com/Azure/azure-sdk-for-python/blob/azure-mgmt-billing_${version}/sdk/billing/azure-mgmt-billing/CHANGELOG.md";
license = licenses.mit;
maintainers = with maintainers; [ maxwilson ];
};

View File

@ -12,7 +12,7 @@
buildPythonPackage rec {
pname = "azure-storage-file-share";
version = "12.18.0";
version = "12.19.0";
pyproject = true;
disabled = pythonOlder "3.8";
@ -20,7 +20,7 @@ buildPythonPackage rec {
src = fetchPypi {
pname = "azure_storage_file_share";
inherit version;
hash = "sha256-CoHa7l4TWYrM3jxzsa7Mxu39zsXpV79AFQwGIvuV3HY=";
hash = "sha256-6npBdNxsUvUKyMMPIoFZ/MNnXR+Lp3G40O/LwxB0Ang=";
};
build-system = [ setuptools ];

View File

@ -3,15 +3,18 @@
buildPythonPackage,
catboost,
python,
# build-system
setuptools,
# dependencies
graphviz,
matplotlib,
numpy,
pandas,
plotly,
scipy,
setuptools,
six,
wheel,
}:
buildPythonPackage rec {
@ -21,16 +24,15 @@ buildPythonPackage rec {
src
meta
;
format = "pyproject";
pyproject = true;
sourceRoot = "${src.name}/catboost/python-package";
nativeBuildInputs = [
build-system = [
setuptools
wheel
];
propagatedBuildInputs = [
dependencies = [
graphviz
matplotlib
numpy

View File

@ -37,18 +37,18 @@ buildPythonPackage rec {
version = "3.1.0";
pyproject = true;
disabled = pythonOlder "3.6";
disabled = pythonOlder "3.8";
src = fetchFromGitHub {
owner = "spec-first";
repo = pname;
repo = "connexion";
rev = "refs/tags/${version}";
hash = "sha256-rngQDU9kXw/Z+Al0SCVnWN8xnphueTtZ0+xPBR5MbEM=";
};
nativeBuildInputs = [ poetry-core ];
build-system = [ poetry-core ];
propagatedBuildInputs = [
dependencies = [
asgiref
httpx
inflection
@ -80,6 +80,10 @@ buildPythonPackage rec {
pythonImportsCheck = [ "connexion" ];
disabledTests = [
"test_build_example"
"test_mock_resolver_no_example"
# Tests require network access
"test_remote_api"
# AssertionError
"test_headers"
# waiter.acquire() deadlock
@ -91,9 +95,10 @@ buildPythonPackage rec {
meta = with lib; {
description = "Swagger/OpenAPI First framework on top of Flask";
mainProgram = "connexion";
homepage = "https://github.com/spec-first/connexion";
changelog = "https://github.com/spec-first/connexion/releases/tag/${version}";
license = licenses.asl20;
maintainers = [ ];
mainProgram = "connexion";
};
}

View File

@ -22,7 +22,7 @@
buildPythonPackage rec {
pname = "debugpy";
version = "1.8.6";
version = "1.8.7";
format = "setuptools";
disabled = pythonOlder "3.8";
@ -31,7 +31,7 @@ buildPythonPackage rec {
owner = "microsoft";
repo = "debugpy";
rev = "refs/tags/v${version}";
hash = "sha256-kkFNIJ3QwojwgiRAOmBiWIg5desxOKTmo9YH1Qup6fI=";
hash = "sha256-JFVhEAfdSfl2ACfXLMdoO/1otdif9bHialdQXucTM5A=";
};
patches =

View File

@ -44,7 +44,7 @@
buildPythonPackage rec {
pname = "dissect-target";
version = "3.18";
version = "3.19";
pyproject = true;
disabled = pythonOlder "3.9";
@ -53,7 +53,7 @@ buildPythonPackage rec {
owner = "fox-it";
repo = "dissect.target";
rev = "refs/tags/${version}";
hash = "sha256-jR+f4t0QXmm007lrGdMyF9vFa3NW35gZxs7pe9sdjfg=";
hash = "sha256-D5YgCAKcnPyBrZTpcSuvKfWfIIcCxKGxn+mj8Jqzmws=";
};
postPatch = ''
@ -138,6 +138,8 @@ buildPythonPackage rec {
"test_systemd_basic_syntax"
"test_target_cli_unicode_argparse"
"test_target_query"
"test_target_info"
"test_yara"
]
++
# test is broken on Darwin

View File

@ -12,24 +12,24 @@
buildPythonPackage rec {
pname = "dissect-volume";
version = "3.11";
version = "3.12";
pyproject = true;
disabled = pythonOlder "3.11";
disabled = pythonOlder "3.12";
src = fetchFromGitHub {
owner = "fox-it";
repo = "dissect.volume";
rev = "refs/tags/${version}";
hash = "sha256-eHIInoquuyukKuPVvVB6qtovx1NloHHVGKfFBHxVd+o=";
hash = "sha256-IhG2FZdCmYrGxHc2i+ERhphxP/uGgOY67epHEWnQXb0=";
};
nativeBuildInputs = [
build-system = [
setuptools
setuptools-scm
];
propagatedBuildInputs = [
dependencies = [
dissect-cstruct
dissect-util
];
@ -44,6 +44,7 @@ buildPythonPackage rec {
"test_dm_thin"
"test_lvm_mirro"
"test_lvm_thin"
"test_lvm"
"test_md_raid0_zones"
"test_md_read"
];

View File

@ -1,30 +1,35 @@
{
lib,
buildPythonPackage,
duckdb,
elastic-transport,
elasticsearch,
fastavro,
fetchFromGitHub,
httpx,
lz4,
maxminddb,
msgpack,
pytest7CheckHook,
pythonOlder,
setuptools,
pytz,
setuptools-scm,
setuptools,
zstandard,
}:
buildPythonPackage rec {
pname = "flow-record";
version = "3.15";
version = "3.17";
pyproject = true;
disabled = pythonOlder "3.8";
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "fox-it";
repo = "flow.record";
rev = "refs/tags/${version}";
hash = "sha256-j5N66p7feB9Ae+Fu5RhVzh8XCHiq55jJMg0Fe+C6Jvg=";
hash = "sha256-fFP2bdO4wTR9Y+9no3FabtVmLicTD76Jw5aWDMPOB0w=";
};
build-system = [
@ -39,11 +44,18 @@ buildPythonPackage rec {
lz4
zstandard
];
duckdb = [
duckdb
pytz
];
elastic = [ elasticsearch ];
geoip = [ maxminddb ];
avro = [ fastavro ] ++ fastavro.optional-dependencies.snappy;
splunk = [ httpx ];
};
nativeCheckInputs = [
elastic-transport
pytest7CheckHook
] ++ lib.flatten (builtins.attrValues optional-dependencies);

View File

@ -13,7 +13,7 @@
buildPythonPackage rec {
pname = "hypothesis-auto";
version = "1.1.5";
format = "pyproject";
pyproject = true;
disabled = pythonOlder "3.6";
@ -23,14 +23,22 @@ buildPythonPackage rec {
hash = "sha256-U0vcOB9jXmUV5v2IwybVu2arY1FpPnKkP7m2kbD1kRw=";
};
nativeBuildInputs = [ poetry-core ];
propagatedBuildInputs = [
pydantic
hypothesis
pytest
pythonRelaxDeps = [
"hypothesis"
"pydantic"
];
build-system = [ poetry-core ];
dependencies = [
hypothesis
pydantic
];
optional-dependencies = {
pytest = [ pytest ];
};
pythonImportsCheck = [ "hypothesis_auto" ];
nativeCheckInputs = [ pytestCheckHook ];
@ -38,6 +46,7 @@ buildPythonPackage rec {
meta = with lib; {
description = "Enables fully automatic tests for type annotated functions";
homepage = "https://github.com/timothycrosley/hypothesis-auto/";
changelog = "https://github.com/timothycrosley/hypothesis-auto/blob/master/CHANGELOG.md";
license = licenses.mit;
maintainers = [ ];
};

View File

@ -3,38 +3,43 @@
buildPythonPackage,
fetchPypi,
pytestCheckHook,
astunparse,
pythonOlder,
setuptools,
typing-extensions,
}:
buildPythonPackage rec {
pname = "import-expression";
version = "2.0.0";
pyproject = true;
disabled = pythonOlder "3.9";
src = fetchPypi {
inherit version;
pname = "import_expression";
inherit version;
hash = "sha256-Biw7dIOPKbDcqYJSCyeqC/seREcVihSZuaKNFfgjTew=";
};
build-system = [ setuptools ];
dependencies = [ astunparse ];
dependencies = [ typing-extensions ];
nativeCheckInputs = [ pytestCheckHook ];
pytestFlagsArray = [ "tests.py" ];
pythonImportsCheck = [
"import_expression"
"import_expression._codec"
];
pythonImportsCheck = [ "import_expression" ];
meta = {
description = "Transpiles a superset of python to allow easy inline imports";
homepage = "https://github.com/ioistired/import-expression-parser";
changelog = "https://github.com/ioistired/import-expression/releases/tag/v${version}";
license = with lib.licenses; [
mit
psfl
];
mainProgram = "import-expression";
maintainers = with lib.maintainers; [ ];
mainProgram = "import-expression";
};
}

View File

@ -0,0 +1,35 @@
{
lib,
buildPythonPackage,
fetchPypi,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "jalali-core";
version = "1.0.0";
pyproject = true;
disabled = pythonOlder "3.8";
src = fetchPypi {
pname = "jalali_core";
inherit version;
hash = "sha256-9Ch8cMYwMj3PCjqybfkFuk1FHiMKwfZbO7L3d5eJSis=";
};
build-system = [ setuptools ];
# Module has no tests
doCheck = false;
pythonImportsCheck = [ "jalali_core" ];
meta = {
description = "Module to convert Gregorian to Jalali and inverse dates";
homepage = "https://pypi.org/project/jalali-core/";
license = lib.licenses.lgpl2Only;
maintainers = with lib.maintainers; [ fab ];
};
}

View File

@ -2,29 +2,33 @@
lib,
buildPythonPackage,
fetchPypi,
six,
jalali-core,
pythonOlder,
setuptools,
}:
buildPythonPackage rec {
pname = "jdatetime";
version = "5.0.0";
format = "setuptools";
pyproject = true;
disabled = pythonOlder "3.7";
disabled = pythonOlder "3.8";
src = fetchPypi {
inherit pname version;
hash = "sha256-LMYD2RPA2OMokoRU09KVJhywN+mVAif2fJYpq0cQ/fk=";
};
propagatedBuildInputs = [ six ];
build-system = [ setuptools ];
dependencies = [ jalali-core ];
pythonImportsCheck = [ "jdatetime" ];
meta = with lib; {
description = "Jalali datetime binding";
homepage = "https://github.com/slashmili/python-jalali";
changelog = "https://github.com/slashmili/python-jalali/blob/v${version}/CHANGELOG.md";
license = licenses.psfl;
maintainers = [ ];
};

View File

@ -14,21 +14,21 @@
buildPythonPackage rec {
pname = "pylint-django";
version = "2.5.4";
version = "2.6.0";
pyproject = true;
disabled = pythonOlder "3.7";
disabled = pythonOlder "3.9";
src = fetchFromGitHub {
owner = "PyCQA";
repo = "pylint-django";
rev = "refs/tags/v${version}";
hash = "sha256-MNgu3LvFoohXA+JzUiHIaYFw0ssEe+H5T8Ea56LcGuI=";
hash = "sha256-Rnty8ryKd5PxFFVYcvB8p9VS3qlHCprxR8+/ySY5qC8=";
};
nativeBuildInputs = [ poetry-core ];
build-system = [ poetry-core ];
propagatedBuildInputs = [ pylint-plugin-utils ];
dependencies = [ pylint-plugin-utils ];
optional-dependencies = {
with_django = [ django ];

View File

@ -9,19 +9,20 @@
requests,
requests-mock,
setuptools,
typing-extensions,
versioneer,
}:
buildPythonPackage rec {
pname = "tableauserverclient";
version = "0.31";
version = "0.33";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchPypi {
inherit pname version;
hash = "sha256-e00/+yVKg7dGGq3Os+oWu/F93j5e9dnwWZxKwm+soqM=";
hash = "sha256-7yj/Ey3mIR2GZ0gtNkrrtoKEmuA5LihZlM9qPhbROQw=";
};
postPatch = ''
@ -29,7 +30,10 @@ buildPythonPackage rec {
rm versioneer.py
'';
pythonRelaxDeps = [ "urllib3" ];
pythonRelaxDeps = [
"defusedxml"
"urllib3"
];
nativeBuildInputs = [
setuptools
@ -40,6 +44,7 @@ buildPythonPackage rec {
defusedxml
requests
packaging
typing-extensions
];
nativeCheckInputs = [

View File

@ -28,10 +28,10 @@
}:
let
defaultVersion = "2024.07";
defaultVersion = "2024.10";
defaultSrc = fetchurl {
url = "https://ftp.denx.de/pub/u-boot/u-boot-${defaultVersion}.tar.bz2";
hash = "sha256-9ZHamrkO89az0XN2bQ3f+QxO1zMGgIl0hhF985DYPI8=";
hash = "sha256-so2vSsF+QxVjYweL9RApdYQTf231D87ZsS3zT2GpL7A=";
};
# Dependencies for the tools need to be included as either native or cross,
@ -212,6 +212,14 @@ in {
filesToInstall = ["u-boot-with-spl.kwb"];
};
ubootCM3588NAS = buildUBoot {
defconfig = "cm3588-nas-rk3588_defconfig";
extraMeta.platforms = [ "aarch64-linux" ];
BL31 = "${armTrustedFirmwareRK3588}/bl31.elf";
ROCKCHIP_TPL = rkbin.TPL_RK3588;
filesToInstall = [ "u-boot.itb" "idbloader.img" "u-boot-rockchip.bin" ];
};
ubootCubieboard2 = buildUBoot {
defconfig = "Cubieboard2_defconfig";
extraMeta.platforms = ["armv7l-linux"];
@ -442,6 +450,14 @@ in {
filesToInstall = ["u-boot-sunxi-with-spl.bin"];
};
ubootOrangePi3B = buildUBoot {
defconfig = "orangepi-3b-rk3566_defconfig";
extraMeta.platforms = ["aarch64-linux"];
ROCKCHIP_TPL = rkbin.TPL_RK3568;
BL31 = rkbin.BL31_RK3568;
filesToInstall = [ "u-boot.itb" "idbloader.img" "u-boot-rockchip.bin" "u-boot-rockchip-spi.bin" ];
};
ubootPcduino3Nano = buildUBoot {
defconfig = "Linksprite_pcDuino3_Nano_defconfig";
extraMeta.platforms = ["armv7l-linux"];

View File

@ -6,15 +6,15 @@
, zlib
}:
stdenv.mkDerivation (finalAttrs: {
stdenv.mkDerivation (finalAttrs: rec {
pname = "ipu6-camera-bins";
version = "unstable-2023-10-26";
version = "unstable-2024-09-27";
src = fetchFromGitHub {
owner = "intel";
repo = "ipu6-camera-bins";
rev = "af5ba0cb4a763569ac7514635013e9d870040bcf";
hash = "sha256-y0pT5M7AKACbquQWLZPYpTPXRC5hipLNL61nhs+cst4=";
owner = "intel";
rev = "98ca6f2a54d20f171628055938619972514f7a07";
hash = "sha256-DAjAzHMqX41mrfQVpDUJLw4Zjb9pz6Uy3TJjTGIkd6o=";
};
nativeBuildInputs = [
@ -33,13 +33,14 @@ stdenv.mkDerivation (finalAttrs: {
include \
$out/
install -m 0644 -D LICENSE $out/share/doc/LICENSE
# There is no LICENSE file in the src
# install -m 0644 -D LICENSE $out/share/doc/LICENSE
runHook postInstall
'';
postFixup = ''
for pcfile in $out/lib/*/pkgconfig/*.pc; do
for pcfile in $out/lib/pkgconfig/*.pc; do
substituteInPlace $pcfile \
--replace 'prefix=/usr' "prefix=$out"
done

View File

@ -5,13 +5,13 @@
stdenv.mkDerivation {
pname = "ivsc-firmware";
version = "unstable-2023-08-11";
version = "unstable-2024-06-14";
src = fetchFromGitHub {
owner = "intel";
repo = "ivsc-firmware";
rev = "10c214fea5560060d387fbd2fb8a1af329cb6232";
hash = "sha256-kEoA0yeGXuuB+jlMIhNm+SBljH+Ru7zt3PzGb+EPBPw=";
rev = "74a01d1208a352ed85d76f959c68200af4ead918";
hash = "sha256-kHYfeftMtoOsOtVN6+XoDMDHP7uTEztbvjQLpCnKCh0=";
};
dontBuild = true;

View File

@ -5,17 +5,19 @@
, kernel
}:
stdenv.mkDerivation {
stdenv.mkDerivation rec {
pname = "ipu6-drivers";
version = "unstable-2023-11-24";
version = "unstable-2024-10-10";
src = fetchFromGitHub {
owner = "intel";
repo = "ipu6-drivers";
rev = "07f0612eabfdc31df36f5e316a9eae115807804f";
hash = "sha256-8JRZG6IKJT0qtoqJHm8641kSQMLc4Z+DRzK6FpL9Euk=";
rev = "118952d49ec598f56add50d93fa7bc3ac4a05643";
hash = "sha256-xdMwINoKrdRHCPMpdZQn86ATi1dAXncMU39LLXS16mc=";
};
patches = [ "${src}/patches/0001-v6.10-IPU6-headers-used-by-PSYS.patch" ];
postPatch = ''
cp --no-preserve=mode --recursive --verbose \
${ivsc-driver.src}/backport-include \
@ -47,7 +49,7 @@ stdenv.mkDerivation {
license = lib.licenses.gpl2Only;
maintainers = [ ];
platforms = [ "x86_64-linux" ];
# requires 6.1.7 https://github.com/intel/ipu6-drivers/pull/84
broken = kernel.kernelOlder "6.1.7";
# requires 6.10
broken = kernel.kernelOlder "6.10";
};
}

View File

@ -6,13 +6,13 @@
stdenv.mkDerivation {
pname = "ivsc-driver";
version = "unstable-2023-11-09";
version = "unstable-2024-09-18";
src = fetchFromGitHub {
owner = "intel";
repo = "ivsc-driver";
rev = "73a044d9633212fac54ea96cdd882ff5ab40573e";
hash = "sha256-vE5pOtVqjiWovlUMSEoBKTk/qvs8K8T5oY2r7njh0wQ=";
rev = "10f440febe87419d5c82d8fe48580319ea135b54";
hash = "sha256-jc+8geVquRtaZeIOtadCjY9F162Rb05ptE7dk8kuof0=";
};
nativeBuildInputs = kernel.moduleBuildDependencies;

View File

@ -36,7 +36,11 @@ let
# Currently only enabling Rust by default on kernel 6.12+,
# which actually has features that use Rust that we want.
defaultRust = lib.versionAtLeast version "6.12" && rustAvailable;
withRust = (forceRust || defaultRust) && kernelSupportsRust;
withRust =
assert lib.assertMsg (!(forceRust && !kernelSupportsRust)) ''
Kernels below 6.7 (the kernel being built is ${version}) don't support Rust.
'';
(forceRust || defaultRust) && kernelSupportsRust;
options = {

View File

@ -396,6 +396,9 @@ let
requiredSystemFeatures = [ "big-parallel" ];
meta = {
# https://github.com/NixOS/nixpkgs/pull/345534#issuecomment-2391238381
broken = withRust && lib.versionOlder version "6.12";
description =
"The Linux kernel" +
(if kernelPatches == [] then "" else

View File

@ -18,9 +18,9 @@ stdenv.mkDerivation rec {
makeFlags = [ "PREFIX=${placeholder "out"}" ];
meta = with lib; {
inherit (src.meta) homepage;
description = "Monitoring software for AMD Zen-based CPUs";
mainProgram = "zenmonitor";
homepage = "https://github.com/Ta180m/zenmonitor3";
license = licenses.mit;
platforms = [ "i686-linux" "x86_64-linux" ];
maintainers = with maintainers; [ alexbakker artturin ];

View File

@ -1,7 +1,6 @@
{ lib, stdenv, nodejs-slim, bundlerEnv, nixosTests
, yarn, callPackage, ruby, writeShellScript
, fetchYarnDeps, fixup-yarn-lock
, brotli
, yarn-berry, callPackage, ruby, writeShellScript
, brotli, python3
# Allow building a fork or custom version of Mastodon:
, pname ? "mastodon"
@ -28,12 +27,12 @@ stdenv.mkDerivation rec {
pname = "${pname}-modules";
inherit src version;
yarnOfflineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
yarnOfflineCache = callPackage ./yarn.nix {
inherit version src;
hash = yarnHash;
};
nativeBuildInputs = [ fixup-yarn-lock nodejs-slim yarn mastodonGems mastodonGems.wrappedRuby brotli ];
nativeBuildInputs = [ nodejs-slim yarn-berry mastodonGems mastodonGems.wrappedRuby brotli python3 ];
RAILS_ENV = "production";
NODE_ENV = "production";
@ -42,29 +41,33 @@ stdenv.mkDerivation rec {
runHook preBuild
export HOME=$PWD
fixup-yarn-lock ~/yarn.lock
yarn config --offline set yarn-offline-mirror $yarnOfflineCache
yarn install --offline --frozen-lockfile --ignore-engines --ignore-scripts --no-progress
export YARN_ENABLE_TELEMETRY=0
export npm_config_nodedir=${nodejs-slim}
export SECRET_KEY_BASE_DUMMY=1
mkdir -p ~/.yarn/berry
ln -s $yarnOfflineCache ~/.yarn/berry/cache
yarn install --immutable --immutable-cache
patchShebangs ~/bin
patchShebangs ~/node_modules
# skip running yarn install
rm -rf ~/bin/yarn
bundle exec rails assets:precompile
OTP_SECRET=precompile_placeholder SECRET_KEY_BASE=precompile_placeholder \
rails assets:precompile
yarn cache clean --offline
yarn cache clean --all
rm -rf ~/node_modules/.cache
# Remove execute permissions
find ~/public/assets -type f ! -perm 0555 \
-exec chmod 0444 {} ';'
# Create missing static gzip and brotli files
gzip --best --keep ~/public/assets/500.html
gzip --best --keep ~/public/packs/report.html
find ~/public/assets -maxdepth 1 -type f -name '.*.json' \
-exec gzip --best --keep --force {} ';'
brotli --best --keep ~/public/packs/report.html
find ~/public/assets -type f -regextype posix-extended -iregex '.*\.(css|js|json|html)' \
find ~/public/assets -type f -regextype posix-extended -iregex '.*\.(css|html|js|json|svg)' \
-exec gzip --best --keep --force {} ';' \
-exec brotli --best --keep {} ';'
gzip --best --keep ~/public/packs/report.html
brotli --best --keep ~/public/packs/report.html
runHook postBuild
'';
@ -101,13 +104,14 @@ stdenv.mkDerivation rec {
done
# Remove execute permissions
chmod 0444 public/emoji/*.svg
find public/emoji -type f ! -perm 0555 \
-exec chmod 0444 {} ';'
# Create missing static gzip and brotli files
find public -maxdepth 1 -type f -regextype posix-extended -iregex '.*\.(css|js|svg|txt|xml)' \
find public -maxdepth 1 -type f -regextype posix-extended -iregex '.*\.(js|txt)' \
-exec gzip --best --keep --force {} ';' \
-exec brotli --best --keep {} ';'
find public/emoji -type f -name '.*.svg' \
find public/emoji -type f -name '*.svg' \
-exec gzip --best --keep --force {} ';' \
-exec brotli --best --keep {} ';'
ln -s assets/500.html.gz public/500.html.gz
@ -133,7 +137,8 @@ stdenv.mkDerivation rec {
runHook preInstall
mkdir -p $out
cp -r * $out/
mv .{env*,ruby*} $out/
mv * $out/
ln -s ${run-streaming} $out/run-streaming.sh
runHook postInstall

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
# This file was generated by pkgs.mastodon.updateScript.
{ fetchFromGitHub, applyPatches, patches ? [] }:
let
version = "4.2.13";
version = "4.3.0";
in
(
applyPatches {
@ -9,10 +9,10 @@ in
owner = "mastodon";
repo = "mastodon";
rev = "v${version}";
hash = "sha256-+HGu02fjYJ1x6Tk9AdqmFN7JHk3UnlvCdiQ/5yMu69M=";
hash = "sha256-nZtxildQmT/7JMCTx89ZSWxb9I7xMLGHTJv7v4gfdd4=";
};
patches = patches ++ [];
}) // {
inherit version;
yarnHash = "sha256-qoLesubmSvRsXhKwMEWHHXcpcqRszqcdZgHQqnTpNPE=";
yarnHash = "sha256-V/kBkxv6akTyzlFzdR1F53b7RD0NYtap58Xt5yOAbYA=";
}

View File

@ -106,7 +106,5 @@ echo "Creating gemset.nix"
bundix --lockfile="$SOURCE_DIR/Gemfile.lock" --gemfile="$SOURCE_DIR/Gemfile"
echo "" >> gemset.nix # Create trailing newline to please EditorConfig checks
echo "Creating yarn-hash.nix"
YARN_HASH="$(prefetch-yarn-deps "$SOURCE_DIR/yarn.lock")"
YARN_HASH="$(nix hash to-sri --type sha256 "$YARN_HASH")"
sed -i "s/sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=/$YARN_HASH/g" source.nix
echo "Required manual update of yarn-hash"
exit 1

View File

@ -0,0 +1,34 @@
{
stdenvNoCC,
yarn-berry,
cacert,
version,
src,
hash,
}:
stdenvNoCC.mkDerivation {
pname = "yarn-deps";
inherit version src;
nativeBuildInputs = [
yarn-berry
];
dontInstall = true;
NODE_EXTRA_CA_CERTS = "${cacert}/etc/ssl/certs/ca-bundle.crt";
buildPhase = ''
export HOME=$(mktemp -d)
export YARN_ENABLE_TELEMETRY=0
cache="$(yarn config get cacheFolder)"
yarn install --immutable --mode skip-build
mkdir -p $out
cp -r $cache/* $out/
'';
outputHash = hash;
outputHashMode = "recursive";
}

View File

@ -1,29 +1,29 @@
{ lib
, fetchFromGitHub
, python3
{
lib,
fetchFromGitHub,
python3,
}:
python3.pkgs.buildPythonApplication rec {
pname = "mitmproxy2swagger";
version = "0.13.0";
format = "pyproject";
pyproject = true;
src = fetchFromGitHub {
owner = "alufers";
repo = pname;
repo = "mitmproxy2swagger";
rev = "refs/tags/${version}";
hash = "sha256-VHxqxee5sQWRS13V4SfY4LWaN0oxxWsNVDOEqUyKHfg=";
};
nativeBuildInputs = with python3.pkgs; [
poetry-core
];
pythonRelaxDeps = [
"mitmproxy"
"ruamel.yaml"
];
propagatedBuildInputs = with python3.pkgs; [
build-system = with python3.pkgs; [ poetry-core ];
dependencies = with python3.pkgs; [
json-stream
mitmproxy
ruamel-yaml
@ -32,16 +32,14 @@ python3.pkgs.buildPythonApplication rec {
# No tests available
doCheck = false;
pythonImportsCheck = [
"mitmproxy2swagger"
];
pythonImportsCheck = [ "mitmproxy2swagger" ];
meta = with lib; {
description = "Tool to automagically reverse-engineer REST APIs";
mainProgram = "mitmproxy2swagger";
homepage = "https://github.com/alufers/mitmproxy2swagger";
changelog = "https://github.com/alufers/mitmproxy2swagger/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
mainProgram = "mitmproxy2swagger";
};
}

View File

@ -719,6 +719,7 @@ mapAliases {
hip-common = throw "'hip-common' has been replaced with 'rocmPackages.hip-common'"; # Added 2023-10-08
hip-nvidia = throw "'hip-nvidia' has been removed in favor of 'rocmPackages.clr'"; # Added 2023-10-08
hll2390dw-cups = throw "The hll2390dw-cups package was dropped since it was unmaintained."; # Added 2024-06-21
hop-cli = throw "hop-cli has been removed as the service has been shut-down"; # Added 2024-08-13
ht-rust = xh; # Added 2021-02-13
hydra_unstable = hydra; # Added 2024-08-22
hydron = throw "hydron has been removed as the project has been archived upstream since 2022 and is affected by a severe remote code execution vulnerability";

View File

@ -14982,8 +14982,6 @@ with pkgs;
hop = callPackage ../development/compilers/hop { };
hop-cli = throw "hop-cli has been removed as the service has been shut-down"; #Added 2024-08-13
falcon = callPackage ../development/interpreters/falcon {
stdenv = gcc10Stdenv;
};
@ -19057,7 +19055,7 @@ with pkgs;
captive-browser = callPackage ../applications/networking/browsers/captive-browser { };
catboost = callPackage ../development/libraries/catboost {
catboost = callPackage ../by-name/ca/catboost/package.nix {
# https://github.com/catboost/catboost/issues/2540
cudaPackages = cudaPackages_11;
};
@ -24487,8 +24485,10 @@ with pkgs;
maker-panel = callPackage ../tools/misc/maker-panel { };
mastodon = callPackage ../servers/mastodon {
nodejs-slim = nodejs-slim_20;
ruby = ruby_3_2;
nodejs-slim = nodejs-slim_22;
python3 = python311;
ruby = ruby_3_3;
yarn-berry = yarn-berry.override { nodejs = nodejs-slim_22; };
};
gotosocial = callPackage ../servers/gotosocial { };
@ -26542,6 +26542,7 @@ with pkgs;
ubootBananaPim64
ubootAmx335xEVM
ubootClearfog
ubootCM3588NAS
ubootCubieboard2
ubootGuruplug
ubootJetsonTK1
@ -26554,6 +26555,7 @@ with pkgs;
ubootOlimexA64Olinuxino
ubootOlimexA64Teres1
ubootOrangePi3
ubootOrangePi3B
ubootOrangePi5
ubootOrangePi5Plus
ubootOrangePiPc

View File

@ -367,10 +367,7 @@ in {
intel-speed-select = if lib.versionAtLeast kernel.version "5.3" then callPackage ../os-specific/linux/intel-speed-select { } else null;
ipu6-drivers =
if kernelOlder "6.10"
then callPackage ../os-specific/linux/ipu6-drivers {}
else null;
ipu6-drivers = callPackage ../os-specific/linux/ipu6-drivers {};
ivsc-driver = callPackage ../os-specific/linux/ivsc-driver {};

View File

@ -6333,6 +6333,8 @@ self: super: with self; {
jaeger-client = callPackage ../development/python-modules/jaeger-client { };
jalali-core = callPackage ../development/python-modules/jalali-core { };
jamo = callPackage ../development/python-modules/jamo { };
janus = callPackage ../development/python-modules/janus { };

View File

@ -31,6 +31,11 @@
, nixpkgsArgs ? { config = {
allowUnfree = false;
inHydra = true;
# Exceptional unsafe packages that we still build and distribute,
# so users choosing to allow don't have to rebuild them every time.
permittedInsecurePackages = [
"olm-3.2.16" # see PR #347899
];
}; }
# This flag, if set to true, will inhibit the use of `mapTestOn`