Size: a a a

2021 January 28

LW

LOL WTF in NixOS
Почему с gtk2 тема не полностью генерируется? В остальных qt приложениях тоже самое
источник

LW

LOL WTF in NixOS
источник

LW

LOL WTF in NixOS
QT_QPA_PLATFORMTHEME=gtk2 стоит
источник

LW

LOL WTF in NixOS
С qt5ct работает как надо.
источник

b

blkmrkt in NixOS
Имею вот такую функцию которая собирает постгрес сервер:

{
   url ? "https://github.com/NixOS/nixpkgs.git",
   rev ? "ac05d50ffe6e11d962c979c1171a8cd43d79e574",
   sha256 ? "07iyfki7qdsqa7c61lfnw0wx2pca71li9bh633v7zra84b8a0xhs",
   overlays ? []
}:
let _nixpkgs = (import <nixpkgs> {});
in
(import (_nixpkgs.fetchgit { inherit url rev sha256; }) {
   overlays = [
       (self: super: {
           postgresql = self.postgresql_12;
       })
   ] ++ overlays ++ [
       (self: super: {
           postgresql = super.postgresql.overrideAttrs (super: rec {
               ...
           });
       })
   ];
})


Я бампнул rev для nixpkgs, а там кто-то добавил атрибут что пакет openssl устарел, и теперь никс просит меня добавить этот параметр в конфиг:

ni
xpkgs.config.permittedInsecurePackages = [
        "openssl-1.0.2u"
      ];

Дело в том что это самостоятельная деривация и я не могу трогать configuration.nix на каждой машине где эта деривация будет деплоиться. Как из этой функции выше задать nixpkgs.config.nixpkgs.config.permittedInsecurePackages, либо удалить параметр extraMeta.knownVulnerabilities из пакета openssl? Последнее не получилось из-за ошибки рекурсии.
источник

АБ

Александр Бантьев... in NixOS
Nikita Ursol
короче сам создам скрипт что будет qt цветные темы на основе materia генерить, кому надо, тому надо, в nixpkgs потом загружу
источник

АБ

Александр Бантьев... in NixOS
blkmrkt
Имею вот такую функцию которая собирает постгрес сервер:

{
   url ? "https://github.com/NixOS/nixpkgs.git",
   rev ? "ac05d50ffe6e11d962c979c1171a8cd43d79e574",
   sha256 ? "07iyfki7qdsqa7c61lfnw0wx2pca71li9bh633v7zra84b8a0xhs",
   overlays ? []
}:
let _nixpkgs = (import <nixpkgs> {});
in
(import (_nixpkgs.fetchgit { inherit url rev sha256; }) {
   overlays = [
       (self: super: {
           postgresql = self.postgresql_12;
       })
   ] ++ overlays ++ [
       (self: super: {
           postgresql = super.postgresql.overrideAttrs (super: rec {
               ...
           });
       })
   ];
})


Я бампнул rev для nixpkgs, а там кто-то добавил атрибут что пакет openssl устарел, и теперь никс просит меня добавить этот параметр в конфиг:

ni
xpkgs.config.permittedInsecurePackages = [
        "openssl-1.0.2u"
      ];

Дело в том что это самостоятельная деривация и я не могу трогать configuration.nix на каждой машине где эта деривация будет деплоиться. Как из этой функции выше задать nixpkgs.config.nixpkgs.config.permittedInsecurePackages, либо удалить параметр extraMeta.knownVulnerabilities из пакета openssl? Последнее не получилось из-за ошибки рекурсии.
Функция конечно костыльненькая, но зато добавить очень легко:```let _nixpkgs = (import { config.permittedInsecurePackages = [ "openssl-1.0.2u" ]; });```
источник

b

blkmrkt in NixOS
Александр Бантьев
Функция конечно костыльненькая, но зато добавить очень легко:```let _nixpkgs = (import { config.permittedInsecurePackages = [ "openssl-1.0.2u" ]; });```
Я так тоже пробовал, но никакого эффекта не дает. Я уже нахожусь в одном никс-шелле, правда более старой версии nixpkgs с более старого коммита где openssl не ломали. Не думаю что это должно влиять, но в сам шелл с этой костыльной деривацией выше я захожу из файла default.nix вот так:

args @ { repos ? [], nixpkgs_overlays ? [], verbose ? false  }:
let
   pkgs = (import ./lib/nixpkgs.nix { overlays = nixpkgs_overlays; });
in rec {
   inherit pkgs;
   SCM_PATH = ./.;
   shell = (import ./shell {
       inherit pkgs SCM_PATH verbose repos;
   } );
}
источник

b

blkmrkt in NixOS
Александр Бантьев
Функция конечно костыльненькая, но зато добавить очень легко:```let _nixpkgs = (import { config.permittedInsecurePackages = [ "openssl-1.0.2u" ]; });```
Кстати, а почему костыльная то функция?
источник

АБ

Александр Бантьев... in NixOS
А, я её неправильно читаю
источник

b

blkmrkt in NixOS
внутри super.postgresql.overrideAttrs там патчи всякие, можно игнорировать, поэтому я из заменил ...
источник

АБ

Александр Бантьев... in NixOS
blkmrkt
Я так тоже пробовал, но никакого эффекта не дает. Я уже нахожусь в одном никс-шелле, правда более старой версии nixpkgs с более старого коммита где openssl не ломали. Не думаю что это должно влиять, но в сам шелл с этой костыльной деривацией выше я захожу из файла default.nix вот так:

args @ { repos ? [], nixpkgs_overlays ? [], verbose ? false  }:
let
   pkgs = (import ./lib/nixpkgs.nix { overlays = nixpkgs_overlays; });
in rec {
   inherit pkgs;
   SCM_PATH = ./.;
   shell = (import ./shell {
       inherit pkgs SCM_PATH verbose repos;
   } );
}
Скинь, как именно ты "пробовал"
источник

b

blkmrkt in NixOS
Вот так вот делал nix-shell scm.nix:

{
   url ? "https://github.com/NixOS/nixpkgs.git",
   rev ? "ac05d50ffe6e11d962c979c1171a8cd43d79e574",
   sha256 ? "07iyfki7qdsqa7c61lfnw0wx2pca71li9bh633v7zra84b8a0xhs",
   overlays ? []
}:
let _nixpkgs = ( import <nixpkgs> { config.permittedInsecurePackages = [ "openssl-1.0.2u" ]; } );
in
(import (_nixpkgs.fetchgit { inherit url rev sha256; }) {
   overlays = [
       (self: super: {
           postgresql = self.postgresql_12;
       })
   ] ++ overlays ++ [
       (self: super: {
           postgresql = super.postgresql.overrideAttrs (super: rec {
               # remove this patch that changes socket dir from /tmp to /run/postgresql since the latter requires root
               patches = (builtins.filter (x: (builtins.baseNameOf x) != "socketdir-in-run.patch") super.patches);

               # This overrides producing multiple store paths (out, lib, doc, man) instead of just one.
               # Multiple store paths breaks pg_config behavior where it will output directories relative to the
               # binary that was invoked (supporting relocating binaries, which we need). In particular,
               # pg_config --libdir would point to the nix store path instead of our libdir, breaking support for
               # installing extensions which require a mutable libdir. This also fixes pg_config --docdir,
               # pg_config --htmldir, and pg_config --pkglibdir output.
               outputs = [ "out" ];
               configureFlags = (builtins.filter (x: x != "--libdir=$(lib)/lib") super.configureFlags) ++ [
                   # "--with-llvm"
                   "--with-python"
                   "--with-perl"
                   "--with-tcl"
                   "--with-segsize=16"
                   "--with-blocksize=8"
               ];
               buildInputs = super.buildInputs ++ (with self; [
                   # clang
                   # llvm
                   perl
                   python
                   tcl
               ]);
           });
       })
   ];
})
источник

АБ

Александр Бантьев... in NixOS
Ага, а нужно в другое место сувать )
источник

АБ

Александр Бантьев... in NixOS
{
   url ? "https://github.com/NixOS/nixpkgs.git",
   rev ? "ac05d50ffe6e11d962c979c1171a8cd43d79e574",
   sha256 ? "07iyfki7qdsqa7c61lfnw0wx2pca71li9bh633v7zra84b8a0xhs",
   overlays ? []
}:
let _nixpkgs = ( import <nixpkgs> { } );
in
(import (_nixpkgs.fetchgit { inherit url rev sha256; }) {
   config.permittedInsecurePackages = [ "openssl-1.0.2u" ];
   overlays = [
       (self: super: {
           postgresql = self.postgresql_12;
       })
   ] ++ overlays ++ [
       (self: super: {
           postgresql = super.postgresql.overrideAttrs (super: rec {
               # remove this patch that changes socket dir from /tmp to /run/postgresql since the latter requires root
               patches = (builtins.filter (x: (builtins.baseNameOf x) != "socketdir-in-run.patch") super.patches);

               # This overrides producing multiple store paths (out, lib, doc, man) instead of just one.
               # Multiple store paths breaks pg_config behavior where it will output directories relative to the
               # binary that was invoked (supporting relocating binaries, which we need). In particular,
               # pg_config --libdir would point to the nix store path instead of our libdir, breaking support for
               # installing extensions which require a mutable libdir. This also fixes pg_config --docdir,
               # pg_config --htmldir, and pg_config --pkglibdir output.
               outputs = [ "out" ];
               configureFlags = (builtins.filter (x: x != "--libdir=$(lib)/lib") super.configureFlags) ++ [
                   # "--with-llvm"
                   "--with-python"
                   "--with-perl"
                   "--with-tcl"
                   "--with-segsize=16"
                   "--with-blocksize=8"
               ];
               buildInputs = super.buildInputs ++ (with self; [
                   # clang
                   # llvm
                   perl
                   python
                   tcl
               ]);
           });
       })
   ];
})
источник

b

blkmrkt in NixOS
Александр Бантьев
{
   url ? "https://github.com/NixOS/nixpkgs.git",
   rev ? "ac05d50ffe6e11d962c979c1171a8cd43d79e574",
   sha256 ? "07iyfki7qdsqa7c61lfnw0wx2pca71li9bh633v7zra84b8a0xhs",
   overlays ? []
}:
let _nixpkgs = ( import <nixpkgs> { } );
in
(import (_nixpkgs.fetchgit { inherit url rev sha256; }) {
   config.permittedInsecurePackages = [ "openssl-1.0.2u" ];
   overlays = [
       (self: super: {
           postgresql = self.postgresql_12;
       })
   ] ++ overlays ++ [
       (self: super: {
           postgresql = super.postgresql.overrideAttrs (super: rec {
               # remove this patch that changes socket dir from /tmp to /run/postgresql since the latter requires root
               patches = (builtins.filter (x: (builtins.baseNameOf x) != "socketdir-in-run.patch") super.patches);

               # This overrides producing multiple store paths (out, lib, doc, man) instead of just one.
               # Multiple store paths breaks pg_config behavior where it will output directories relative to the
               # binary that was invoked (supporting relocating binaries, which we need). In particular,
               # pg_config --libdir would point to the nix store path instead of our libdir, breaking support for
               # installing extensions which require a mutable libdir. This also fixes pg_config --docdir,
               # pg_config --htmldir, and pg_config --pkglibdir output.
               outputs = [ "out" ];
               configureFlags = (builtins.filter (x: x != "--libdir=$(lib)/lib") super.configureFlags) ++ [
                   # "--with-llvm"
                   "--with-python"
                   "--with-perl"
                   "--with-tcl"
                   "--with-segsize=16"
                   "--with-blocksize=8"
               ];
               buildInputs = super.buildInputs ++ (with self; [
                   # clang
                   # llvm
                   perl
                   python
                   tcl
               ]);
           });
       })
   ];
})
Одуреть, работает! А что я не так делал, почему нельзя этот конфиг сразу при импорте установить?
источник

АБ

Александр Бантьев... in NixOS
Потому что разные nixpkgs
источник

АБ

Александр Бантьев... in NixOS
(поэтому я назвал код костыльным)
источник

АБ

Александр Бантьев... in NixOS
_nixpkgs тебе вообще не нужен, он отбрасывается после того, как скачивает твой настоящий nixpkgs
источник

АБ

Александр Бантьев... in NixOS
Можно переписать с builtins.fetchurl или builtins.fetchTarball
источник