commit
2a78ea9435
@ -1,77 +1,88 @@
|
|||||||
# Qt {#sec-language-qt}
|
# Qt {#sec-language-qt}
|
||||||
|
|
||||||
This section describes the differences between Nix expressions for Qt libraries and applications and Nix expressions for other C++ software. Some knowledge of the latter is assumed.
|
Writing Nix expressions for Qt libraries and applications is largely similar as for other C++ software.
|
||||||
|
This section assumes some knowledge of the latter.
|
||||||
|
There are two problems that the Nixpkgs Qt infrastructure addresses,
|
||||||
|
which are not shared by other C++ software:
|
||||||
|
|
||||||
There are primarily two problems which the Qt infrastructure is designed to address: ensuring consistent versioning of all dependencies and finding dependencies at runtime.
|
1. There are usually multiple supported versions of Qt in Nixpkgs.
|
||||||
|
All of a package's dependencies must be built with the same version of Qt.
|
||||||
|
This is similar to the version constraints imposed on interpreted languages like Python.
|
||||||
|
2. Qt makes extensive use of runtime dependency detection.
|
||||||
|
Runtime dependencies are made into build dependencies through wrappers.
|
||||||
|
|
||||||
## Nix expression for a Qt package (default.nix) {#qt-default-nix}
|
## Nix expression for a Qt package (default.nix) {#qt-default-nix}
|
||||||
|
|
||||||
```{=docbook}
|
```{=docbook}
|
||||||
<programlisting>
|
<programlisting>
|
||||||
{ mkDerivation, qtbase }: <co xml:id='qt-default-nix-co-1' />
|
{ stdenv, lib, qtbase, wrapQtAppsHook }: <co xml:id='qt-default-nix-co-1' />
|
||||||
|
|
||||||
mkDerivation { <co xml:id='qt-default-nix-co-2' />
|
stdenv.mkDerivation {
|
||||||
pname = "myapp";
|
pname = "myapp";
|
||||||
version = "1.0";
|
version = "1.0";
|
||||||
|
|
||||||
buildInputs = [ qtbase ]; <co xml:id='qt-default-nix-co-3' />
|
buildInputs = [ qtbase ];
|
||||||
|
nativeBuildInputs = [ wrapQtAppsHook ]; <co xml:id='qt-default-nix-co-2' />
|
||||||
}
|
}
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
<calloutlist>
|
<calloutlist>
|
||||||
<callout arearefs='qt-default-nix-co-1'>
|
<callout arearefs='qt-default-nix-co-1'>
|
||||||
<para>
|
<para>
|
||||||
Import <literal>mkDerivation</literal> and Qt (such as <literal>qtbase</literal> modules directly. <emphasis>Do not</emphasis> import Qt package sets; the Qt versions of dependencies may not be coherent, causing build and runtime failures.
|
Import Qt modules directly, that is: <literal>qtbase</literal>, <literal>qtdeclarative</literal>, etc.
|
||||||
|
<emphasis>Do not</emphasis> import Qt package sets such as <literal>qt5</literal>
|
||||||
|
because the Qt versions of dependencies may not be coherent, causing build and runtime failures.
|
||||||
</para>
|
</para>
|
||||||
</callout>
|
</callout>
|
||||||
<callout arearefs='qt-default-nix-co-2'>
|
<callout arearefs='qt-default-nix-co-2'>
|
||||||
<para>
|
<para>
|
||||||
Use <literal>mkDerivation</literal> instead of <literal>stdenv.mkDerivation</literal>. <literal>mkDerivation</literal> is a wrapper around <literal>stdenv.mkDerivation</literal> which applies some Qt-specific settings. This deriver accepts the same arguments as <literal>stdenv.mkDerivation</literal>; refer to <xref linkend='chap-stdenv' /> for details.
|
All Qt packages must include <literal>wrapQtAppsHook</literal> in
|
||||||
</para>
|
<literal>nativeBuildInputs</literal>, or you must explicitly set
|
||||||
<para>
|
<literal>dontWrapQtApps</literal>.
|
||||||
To use another deriver instead of <literal>stdenv.mkDerivation</literal>, use <literal>mkDerivationWith</literal>:
|
</para>
|
||||||
<programlisting>
|
|
||||||
mkDerivationWith myDeriver {
|
|
||||||
# ...
|
|
||||||
}
|
|
||||||
</programlisting>
|
|
||||||
If you cannot use <literal>mkDerivationWith</literal>, please refer to <xref linkend='qt-runtime-dependencies' />.
|
|
||||||
</para>
|
|
||||||
</callout>
|
|
||||||
<callout arearefs='qt-default-nix-co-3'>
|
|
||||||
<para>
|
|
||||||
<literal>mkDerivation</literal> accepts the same arguments as <literal>stdenv.mkDerivation</literal>, such as <literal>buildInputs</literal>.
|
|
||||||
</para>
|
|
||||||
</callout>
|
</callout>
|
||||||
</calloutlist>
|
</calloutlist>
|
||||||
```
|
```
|
||||||
|
|
||||||
## Locating runtime dependencies {#qt-runtime-dependencies}
|
## Locating runtime dependencies {#qt-runtime-dependencies}
|
||||||
Qt applications need to be wrapped to find runtime dependencies. If you cannot use `mkDerivation` or `mkDerivationWith` above, include `wrapQtAppsHook` in `nativeBuildInputs`:
|
|
||||||
|
Qt applications must be wrapped to find runtime dependencies.
|
||||||
|
Include `wrapQtAppsHook` in `nativeBuildInputs`:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
|
{ stdenv, wrapQtAppsHook }:
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
# ...
|
# ...
|
||||||
|
|
||||||
nativeBuildInputs = [ wrapQtAppsHook ];
|
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
Entries added to `qtWrapperArgs` are used to modify the wrappers created by `wrapQtAppsHook`. The entries are passed as arguments to [wrapProgram executable makeWrapperArgs](#fun-wrapProgram).
|
|
||||||
|
Add entries to `qtWrapperArgs` are to modify the wrappers created by
|
||||||
|
`wrapQtAppsHook`:
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
mkDerivation {
|
{ stdenv, wrapQtAppsHook }:
|
||||||
# ...
|
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
# ...
|
||||||
|
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||||
qtWrapperArgs = [ ''--prefix PATH : /path/to/bin'' ];
|
qtWrapperArgs = [ ''--prefix PATH : /path/to/bin'' ];
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
Set `dontWrapQtApps` to stop applications from being wrapped automatically. It is required to wrap applications manually with `wrapQtApp`, using the syntax of [wrapProgram executable makeWrapperArgs](#fun-wrapProgram):
|
The entries are passed as arguments to [wrapProgram](#fun-wrapProgram).
|
||||||
|
|
||||||
|
Set `dontWrapQtApps` to stop applications from being wrapped automatically.
|
||||||
|
Wrap programs manually with `wrapQtApp`, using the syntax of
|
||||||
|
[wrapProgram](#fun-wrapProgram):
|
||||||
|
|
||||||
```nix
|
```nix
|
||||||
mkDerivation {
|
{ stdenv, lib, wrapQtAppsHook }:
|
||||||
# ...
|
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
# ...
|
||||||
|
nativeBuildInputs = [ wrapQtAppsHook ];
|
||||||
dontWrapQtApps = true;
|
dontWrapQtApps = true;
|
||||||
preFixup = ''
|
preFixup = ''
|
||||||
wrapQtApp "$out/bin/myapp" --prefix PATH : /path/to/bin
|
wrapQtApp "$out/bin/myapp" --prefix PATH : /path/to/bin
|
||||||
@ -79,21 +90,16 @@ mkDerivation {
|
|||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
> Note: `wrapQtAppsHook` ignores files that are non-ELF executables. This means that scripts won't be automatically wrapped so you'll need to manually wrap them as previously mentioned. An example of when you'd always need to do this is with Python applications that use PyQT.
|
::: note
|
||||||
|
`wrapQtAppsHook` ignores files that are non-ELF executables.
|
||||||
|
This means that scripts won't be automatically wrapped so you'll need to manually wrap them as previously mentioned.
|
||||||
|
An example of when you'd always need to do this is with Python applications that use PyQt.
|
||||||
|
:::
|
||||||
|
|
||||||
Libraries are built with every available version of Qt. Use the `meta.broken` attribute to disable the package for unsupported Qt versions:
|
|
||||||
|
|
||||||
```nix
|
|
||||||
mkDerivation {
|
|
||||||
# ...
|
|
||||||
|
|
||||||
# Disable this library with Qt < 5.9.0
|
|
||||||
meta.broken = builtins.compareVersions qtbase.version "5.9.0" < 0;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
## Adding a library to Nixpkgs
|
## Adding a library to Nixpkgs
|
||||||
Qt libraries are added to `qt5-packages.nix` and are made available for every Qt
|
Add Qt libraries to `qt5-packages.nix` to make them available for every
|
||||||
version supported.
|
supported Qt version.
|
||||||
|
|
||||||
### Example adding a Qt library {#qt-library-all-packages-nix}
|
### Example adding a Qt library {#qt-library-all-packages-nix}
|
||||||
|
|
||||||
The following represents the contents of `qt5-packages.nix`.
|
The following represents the contents of `qt5-packages.nix`.
|
||||||
@ -106,9 +112,23 @@ The following represents the contents of `qt5-packages.nix`.
|
|||||||
# ...
|
# ...
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Libraries are built with every available version of Qt.
|
||||||
|
Use the `meta.broken` attribute to disable the package for unsupported Qt versions:
|
||||||
|
|
||||||
|
```nix
|
||||||
|
{ stdenv, lib, qtbase }:
|
||||||
|
|
||||||
|
stdenv.mkDerivation {
|
||||||
|
# ...
|
||||||
|
# Disable this library with Qt < 5.9.0
|
||||||
|
meta.broken = lib.versionOlder qtbase.version "5.9.0";
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## Adding an application to Nixpkgs
|
## Adding an application to Nixpkgs
|
||||||
Applications that use Qt are also added to `qt5-packages.nix`. An alias is added
|
Add Qt applications to `qt5-packages.nix`. Add an alias to `all-packages.nix`
|
||||||
in the top-level `all-packages.nix` pointing to the package with the desired Qt5 version.
|
to select the Qt 5 version used for the application.
|
||||||
|
|
||||||
### Example adding a Qt application {#qt-application-all-packages-nix}
|
### Example adding a Qt application {#qt-application-all-packages-nix}
|
||||||
|
|
||||||
|
@ -81,6 +81,7 @@ in
|
|||||||
corerad = handleTest ./corerad.nix {};
|
corerad = handleTest ./corerad.nix {};
|
||||||
couchdb = handleTest ./couchdb.nix {};
|
couchdb = handleTest ./couchdb.nix {};
|
||||||
cri-o = handleTestOn ["x86_64-linux"] ./cri-o.nix {};
|
cri-o = handleTestOn ["x86_64-linux"] ./cri-o.nix {};
|
||||||
|
custom-ca = handleTest ./custom-ca.nix {};
|
||||||
deluge = handleTest ./deluge.nix {};
|
deluge = handleTest ./deluge.nix {};
|
||||||
dhparams = handleTest ./dhparams.nix {};
|
dhparams = handleTest ./dhparams.nix {};
|
||||||
dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
|
dnscrypt-proxy2 = handleTestOn ["x86_64-linux"] ./dnscrypt-proxy2.nix {};
|
||||||
|
161
nixos/tests/custom-ca.nix
Normal file
161
nixos/tests/custom-ca.nix
Normal file
@ -0,0 +1,161 @@
|
|||||||
|
# Checks that `security.pki` options are working in curl and the main browser
|
||||||
|
# engines: Gecko (via Firefox), Chromium, QtWebEngine (Falkon) and WebKitGTK
|
||||||
|
# (via Midori). The test checks that certificates issued by a custom trusted
|
||||||
|
# CA are accepted but those from an unknown CA are rejected.
|
||||||
|
|
||||||
|
import ./make-test-python.nix ({ pkgs, lib, ... }:
|
||||||
|
|
||||||
|
let
|
||||||
|
makeCert = { caName, domain }: pkgs.runCommand "example-cert"
|
||||||
|
{ buildInputs = [ pkgs.gnutls ]; }
|
||||||
|
''
|
||||||
|
mkdir $out
|
||||||
|
|
||||||
|
# CA cert template
|
||||||
|
cat >ca.template <<EOF
|
||||||
|
organization = "${caName}"
|
||||||
|
cn = "${caName}"
|
||||||
|
expiration_days = 365
|
||||||
|
ca
|
||||||
|
cert_signing_key
|
||||||
|
crl_signing_key
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# server cert template
|
||||||
|
cat >server.template <<EOF
|
||||||
|
organization = "An example company"
|
||||||
|
cn = "${domain}"
|
||||||
|
expiration_days = 30
|
||||||
|
dns_name = "${domain}"
|
||||||
|
encryption_key
|
||||||
|
signing_key
|
||||||
|
EOF
|
||||||
|
|
||||||
|
# generate CA keypair
|
||||||
|
certtool \
|
||||||
|
--generate-privkey \
|
||||||
|
--key-type rsa \
|
||||||
|
--sec-param High \
|
||||||
|
--outfile $out/ca.key
|
||||||
|
certtool \
|
||||||
|
--generate-self-signed \
|
||||||
|
--load-privkey $out/ca.key \
|
||||||
|
--template ca.template \
|
||||||
|
--outfile $out/ca.crt
|
||||||
|
|
||||||
|
# generate server keypair
|
||||||
|
certtool \
|
||||||
|
--generate-privkey \
|
||||||
|
--key-type rsa \
|
||||||
|
--sec-param High \
|
||||||
|
--outfile $out/server.key
|
||||||
|
certtool \
|
||||||
|
--generate-certificate \
|
||||||
|
--load-privkey $out/server.key \
|
||||||
|
--load-ca-privkey $out/ca.key \
|
||||||
|
--load-ca-certificate $out/ca.crt \
|
||||||
|
--template server.template \
|
||||||
|
--outfile $out/server.crt
|
||||||
|
'';
|
||||||
|
|
||||||
|
example-good-cert = makeCert
|
||||||
|
{ caName = "Example good CA";
|
||||||
|
domain = "good.example.com";
|
||||||
|
};
|
||||||
|
|
||||||
|
example-bad-cert = makeCert
|
||||||
|
{ caName = "Unknown CA";
|
||||||
|
domain = "bad.example.com";
|
||||||
|
};
|
||||||
|
|
||||||
|
in
|
||||||
|
|
||||||
|
{
|
||||||
|
name = "custom-ca";
|
||||||
|
meta.maintainers = with lib.maintainers; [ rnhmjoj ];
|
||||||
|
|
||||||
|
enableOCR = true;
|
||||||
|
|
||||||
|
machine = { pkgs, ... }:
|
||||||
|
{ imports = [ ./common/user-account.nix ./common/x11.nix ];
|
||||||
|
|
||||||
|
# chromium-based browsers refuse to run as root
|
||||||
|
test-support.displayManager.auto.user = "alice";
|
||||||
|
# browsers may hang with the default memory
|
||||||
|
virtualisation.memorySize = "500";
|
||||||
|
|
||||||
|
networking.hosts."127.0.0.1" = [ "good.example.com" "bad.example.com" ];
|
||||||
|
security.pki.certificateFiles = [ "${example-good-cert}/ca.crt" ];
|
||||||
|
|
||||||
|
services.nginx.enable = true;
|
||||||
|
services.nginx.virtualHosts."good.example.com" =
|
||||||
|
{ onlySSL = true;
|
||||||
|
sslCertificate = "${example-good-cert}/server.crt";
|
||||||
|
sslCertificateKey = "${example-good-cert}/server.key";
|
||||||
|
locations."/".extraConfig = "return 200 'It works!';";
|
||||||
|
};
|
||||||
|
services.nginx.virtualHosts."bad.example.com" =
|
||||||
|
{ onlySSL = true;
|
||||||
|
sslCertificate = "${example-bad-cert}/server.crt";
|
||||||
|
sslCertificateKey = "${example-bad-cert}/server.key";
|
||||||
|
locations."/".extraConfig = "return 200 'It does not work!';";
|
||||||
|
};
|
||||||
|
|
||||||
|
environment.systemPackages = with pkgs;
|
||||||
|
[ xdotool firefox chromium falkon midori ];
|
||||||
|
};
|
||||||
|
|
||||||
|
testScript = ''
|
||||||
|
def execute_as(user: str, cmd: str) -> Tuple[int, str]:
|
||||||
|
"""
|
||||||
|
Run a shell command as a specific user.
|
||||||
|
"""
|
||||||
|
return machine.execute(f"sudo -u {user} {cmd}")
|
||||||
|
|
||||||
|
|
||||||
|
def wait_for_window_as(user: str, cls: str) -> None:
|
||||||
|
"""
|
||||||
|
Wait until a X11 window of a given user appears.
|
||||||
|
"""
|
||||||
|
|
||||||
|
def window_is_visible(last_try: bool) -> bool:
|
||||||
|
ret, stdout = execute_as(user, f"xdotool search --onlyvisible --class {cls}")
|
||||||
|
if last_try:
|
||||||
|
machine.log(f"Last chance to match {cls} on the window list")
|
||||||
|
return ret == 0
|
||||||
|
|
||||||
|
with machine.nested("Waiting for a window to appear"):
|
||||||
|
retry(window_is_visible)
|
||||||
|
|
||||||
|
|
||||||
|
machine.start()
|
||||||
|
|
||||||
|
with subtest("Good certificate is trusted in curl"):
|
||||||
|
machine.wait_for_unit("nginx")
|
||||||
|
machine.wait_for_open_port(443)
|
||||||
|
machine.succeed("curl -fv https://good.example.com")
|
||||||
|
|
||||||
|
with subtest("Unknown CA is untrusted in curl"):
|
||||||
|
machine.fail("curl -fv https://bad.example.com")
|
||||||
|
|
||||||
|
browsers = ["firefox", "chromium", "falkon", "midori"]
|
||||||
|
errors = ["Security Risk", "not private", "Certificate Error", "Security"]
|
||||||
|
|
||||||
|
machine.wait_for_x()
|
||||||
|
for browser, error in zip(browsers, errors):
|
||||||
|
with subtest("Good certificate is trusted in " + browser):
|
||||||
|
execute_as(
|
||||||
|
"alice", f"env P11_KIT_DEBUG=trust {browser} https://good.example.com & >&2"
|
||||||
|
)
|
||||||
|
wait_for_window_as("alice", browser)
|
||||||
|
machine.wait_for_text("It works!")
|
||||||
|
machine.screenshot("good" + browser)
|
||||||
|
execute_as("alice", "xdotool key ctrl+w") # close tab
|
||||||
|
|
||||||
|
with subtest("Unknown CA is untrusted in " + browser):
|
||||||
|
execute_as("alice", f"{browser} https://bad.example.com & >&2")
|
||||||
|
machine.wait_for_text(error)
|
||||||
|
machine.screenshot("bad" + browser)
|
||||||
|
machine.succeed("pkill " + browser)
|
||||||
|
'';
|
||||||
|
})
|
@ -40,6 +40,8 @@ stdenv.mkDerivation rec {
|
|||||||
"SHARE_DIR=${placeholder "out"}/share"
|
"SHARE_DIR=${placeholder "out"}/share"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "CsoundQt is a frontend for Csound with editor, integrated help, widgets and other features";
|
description = "CsoundQt is a frontend for Csound with editor, integrated help, widgets and other features";
|
||||||
homepage = "https://csoundqt.github.io/";
|
homepage = "https://csoundqt.github.io/";
|
||||||
|
@ -20,6 +20,8 @@ mkDerivation rec {
|
|||||||
--replace "\$\$[QT_INSTALL_PREFIX]" "$out"
|
--replace "\$\$[QT_INSTALL_PREFIX]" "$out"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Musical key detection for digital audio (graphical UI)";
|
description = "Musical key detection for digital audio (graphical UI)";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [ alsaLib drumstick qtbase qtsvg ];
|
buildInputs = [ alsaLib drumstick qtbase qtsvg ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://kmetronome.sourceforge.io/";
|
homepage = "https://kmetronome.sourceforge.io/";
|
||||||
description = "ALSA MIDI metronome with Qt interface";
|
description = "ALSA MIDI metronome with Qt interface";
|
||||||
|
@ -17,7 +17,7 @@ python3Packages.buildPythonApplication rec {
|
|||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = https://www.mopidy.com/;
|
homepage = "https://www.mopidy.com/";
|
||||||
description = "Mopidy extension for playing music from SomaFM";
|
description = "Mopidy extension for playing music from SomaFM";
|
||||||
license = licenses.mit;
|
license = licenses.mit;
|
||||||
maintainers = [ maintainers.nickhu ];
|
maintainers = [ maintainers.nickhu ];
|
||||||
|
@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
|
|||||||
"-DENABLE_PULSEAUDIO=ON"
|
"-DENABLE_PULSEAUDIO=ON"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Application for practicing playing musical scores and ear training";
|
description = "Application for practicing playing musical scores and ear training";
|
||||||
homepage = "https://nootka.sourceforge.io/";
|
homepage = "https://nootka.sourceforge.io/";
|
||||||
|
@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
|
|||||||
qtbase qtdeclarative qtquickcontrols2
|
qtbase qtdeclarative qtquickcontrols2
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-DCMAKE_INCLUDE_PATH=${libjack2}/include/jack;${libpulseaudio.dev}/include/pulse"
|
"-DCMAKE_INCLUDE_PATH=${libjack2}/include/jack;${libpulseaudio.dev}/include/pulse"
|
||||||
"-DENABLE_JACK=ON"
|
"-DENABLE_JACK=ON"
|
||||||
|
@ -33,6 +33,7 @@ stdenv.mkDerivation rec {
|
|||||||
dontUnpack = true;
|
dontUnpack = true;
|
||||||
dontBuild = true;
|
dontBuild = true;
|
||||||
dontStrip = true;
|
dontStrip = true;
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
mkdir -p $out
|
mkdir -p $out
|
||||||
|
@ -27,6 +27,8 @@ stdenv.mkDerivation rec {
|
|||||||
kwindowsystem
|
kwindowsystem
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Mpris2 Client for Plasma5";
|
description = "Mpris2 Client for Plasma5";
|
||||||
homepage = "https://github.com/audoban/PlayBar2";
|
homepage = "https://github.com/audoban/PlayBar2";
|
||||||
|
@ -25,6 +25,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/ahlstromcj/seq66";
|
homepage = "https://github.com/ahlstromcj/seq66";
|
||||||
description = "Loop based midi sequencer with Qt GUI derived from seq24 and sequencer64";
|
description = "Loop based midi sequencer with Qt GUI derived from seq24 and sequencer64";
|
||||||
|
@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Allows to analyze samples of musical instruments, and to combine them (morphing) to construct hybrid sounds";
|
description = "Allows to analyze samples of musical instruments, and to combine them (morphing) to construct hybrid sounds";
|
||||||
homepage = "http://spectmorph.org";
|
homepage = "http://spectmorph.org";
|
||||||
|
@ -28,6 +28,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "Peer-to-peer electronic cash system (Classic client)";
|
description = "Peer-to-peer electronic cash system (Classic client)";
|
||||||
longDescription= ''
|
longDescription= ''
|
||||||
|
@ -101,6 +101,8 @@ stdenv.mkDerivation rec {
|
|||||||
})
|
})
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
preConfigure = "NOCONFIGURE=1 ./autogen.sh";
|
preConfigure = "NOCONFIGURE=1 ./autogen.sh";
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
|
@ -39,6 +39,9 @@ stdenv.mkDerivation rec {
|
|||||||
]
|
]
|
||||||
++ lib.optionals withQt [ "UI=qt" ]
|
++ lib.optionals withQt [ "UI=qt" ]
|
||||||
++ lib.optionals withGtk [ "UI=gtk" ];
|
++ lib.optionals withGtk [ "UI=gtk" ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Folding text editor, designed to hierarchically structure any kind of text file and especially source code";
|
description = "Folding text editor, designed to hierarchically structure any kind of text file and especially source code";
|
||||||
homepage = "https://tibleiz.net/code-browser/";
|
homepage = "https://tibleiz.net/code-browser/";
|
||||||
|
@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
||||||
buildInputs = [ kdevelop-pg-qt threadweaver ktexteditor kdevelop-unwrapped ];
|
buildInputs = [ kdevelop-pg-qt threadweaver ktexteditor kdevelop-unwrapped ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
maintainers = [ maintainers.aanderse ];
|
maintainers = [ maintainers.aanderse ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
||||||
buildInputs = [ threadweaver ktexteditor kdevelop-unwrapped ];
|
buildInputs = [ threadweaver ktexteditor kdevelop-unwrapped ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
maintainers = [ maintainers.aanderse ];
|
maintainers = [ maintainers.aanderse ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [ qtbase ];
|
buildInputs = [ qtbase ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
maintainers = [ maintainers.ambrop72 ];
|
maintainers = [ maintainers.ambrop72 ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
|
@ -19,6 +19,8 @@ stdenv.mkDerivation rec {
|
|||||||
export QXMLEDIT_INST_DOC_DIR="$doc"
|
export QXMLEDIT_INST_DOC_DIR="$doc"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Simple XML editor based on qt libraries" ;
|
description = "Simple XML editor based on qt libraries" ;
|
||||||
homepage = "https://sourceforge.net/projects/qxmledit";
|
homepage = "https://sourceforge.net/projects/qxmledit";
|
||||||
|
@ -38,6 +38,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
preCheck = ''
|
preCheck = ''
|
||||||
patchShebangs testo
|
patchShebangs testo
|
||||||
|
@ -10,6 +10,8 @@ mkDerivation {
|
|||||||
nativeBuildInputs = [ qmake qttools ];
|
nativeBuildInputs = [ qmake qttools ];
|
||||||
buildInputs = [ qtwebkit ];
|
buildInputs = [ qtwebkit ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace mainwindow.cc \
|
substituteInPlace mainwindow.cc \
|
||||||
--replace "QApplication::applicationDirPath() + \"/" "\"" \
|
--replace "QApplication::applicationDirPath() + \"/" "\"" \
|
||||||
|
@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
nativeBuildInputs = [ cmake extra-cmake-modules ];
|
||||||
buildInputs = [ plasma-framework kwindowsystem plasma-pa ];
|
buildInputs = [ plasma-framework kwindowsystem plasma-pa ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A fork of the default volume plasmoid with a Windows 7 theme (vertical sliders)";
|
description = "A fork of the default volume plasmoid with a Windows 7 theme (vertical sliders)";
|
||||||
homepage = "https://github.com/Zren/plasma-applet-volumewin7mixer";
|
homepage = "https://github.com/Zren/plasma-applet-volumewin7mixer";
|
||||||
|
@ -32,6 +32,7 @@ mkDerivation rec {
|
|||||||
];
|
];
|
||||||
|
|
||||||
dontUseQmakeConfigure = true;
|
dontUseQmakeConfigure = true;
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated" ];
|
NIX_CFLAGS_COMPILE = [ "-Wno-error=deprecated" ];
|
||||||
|
|
||||||
|
@ -35,6 +35,8 @@ stdenv.mkDerivation {
|
|||||||
kwindowsystem
|
kwindowsystem
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "KDE Plasma 5 widget for controlling Redshift";
|
description = "KDE Plasma 5 widget for controlling Redshift";
|
||||||
homepage = "https://github.com/kotelnik/plasma-applet-redshift-control";
|
homepage = "https://github.com/kotelnik/plasma-applet-redshift-control";
|
||||||
|
@ -52,6 +52,8 @@ let
|
|||||||
|
|
||||||
buildInputs = [ qtbase qtlocation libXcomposite ];
|
buildInputs = [ qtbase qtlocation libXcomposite ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
pluginsSubdir = "lib/qt-${qtbase.qtCompatVersion}/plugins";
|
pluginsSubdir = "lib/qt-${qtbase.qtCompatVersion}/plugins";
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
export QMAKEFEATURES=${libcommuni}/features
|
export QMAKEFEATURES=${libcommuni}/features
|
||||||
'';
|
'';
|
||||||
|
@ -16,6 +16,8 @@ stdenv.mkDerivation rec {
|
|||||||
runHook postConfigure
|
runHook postConfigure
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Rapidly extract unformatted, or unstandardized bibliographic references from email alerts, journal Web pages and PDF files";
|
description = "Rapidly extract unformatted, or unstandardized bibliographic references from email alerts, journal Web pages and PDF files";
|
||||||
homepage = "http://www.molspaces.com/d_cb2bib-overview.php";
|
homepage = "http://www.molspaces.com/d_cb2bib-overview.php";
|
||||||
|
@ -218,6 +218,7 @@ let
|
|||||||
passthru
|
passthru
|
||||||
doCheck
|
doCheck
|
||||||
dontWrapPythonPrograms
|
dontWrapPythonPrograms
|
||||||
|
dontWrapQtApps
|
||||||
meta
|
meta
|
||||||
;
|
;
|
||||||
cmakeFlags = shared.cmakeFlags
|
cmakeFlags = shared.cmakeFlags
|
||||||
@ -283,6 +284,7 @@ stdenv.mkDerivation rec {
|
|||||||
passthru
|
passthru
|
||||||
doCheck
|
doCheck
|
||||||
dontWrapPythonPrograms
|
dontWrapPythonPrograms
|
||||||
|
dontWrapQtApps
|
||||||
meta
|
meta
|
||||||
;
|
;
|
||||||
}
|
}
|
||||||
|
@ -109,6 +109,7 @@ rec {
|
|||||||
};
|
};
|
||||||
# Wrapping is done with an external wrapper
|
# Wrapping is done with an external wrapper
|
||||||
dontWrapPythonPrograms = true;
|
dontWrapPythonPrograms = true;
|
||||||
|
dontWrapQtApps = true;
|
||||||
# Tests should succeed, but it's hard to get LD_LIBRARY_PATH right in order
|
# Tests should succeed, but it's hard to get LD_LIBRARY_PATH right in order
|
||||||
# for it to happen.
|
# for it to happen.
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs = [libpulseaudio alsaLib pkg-config qt5.qtbase];
|
buildInputs = [libpulseaudio alsaLib pkg-config qt5.qtbase];
|
||||||
CFLAGS ="-lasound -lpulse-simple";
|
CFLAGS ="-lasound -lpulse-simple";
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "sound characters as Morse code on the soundcard or console speaker";
|
description = "sound characters as Morse code on the soundcard or console speaker";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -2,11 +2,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "last";
|
pname = "last";
|
||||||
version = "1170";
|
version = "1178";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://last.cbrc.jp/last-${version}.zip";
|
url = "http://last.cbrc.jp/last-${version}.zip";
|
||||||
sha256 = "sha256-hBuG6QGXtBrvNrtaZU+i8gxu2ZQw+srFRkbuWoL5JHc=";
|
sha256 = "sha256-LihTYXiYCHAFZaWDb2MqN+RvHayGSyZd3vJf4TVCu3A=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ unzip ];
|
nativeBuildInputs = [ unzip ];
|
||||||
|
@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
buildInputs = [ libGLU libGL qt5.qtbase boost ];
|
buildInputs = [ libGLU libGL qt5.qtbase boost ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A toolset for model-checking concurrent systems and protocols";
|
description = "A toolset for model-checking concurrent systems and protocols";
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -48,6 +48,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
dontBuild = true;
|
dontBuild = true;
|
||||||
dontConfigure = true;
|
dontConfigure = true;
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "GUI application that allows to quickly and easily compare files and folders";
|
description = "GUI application that allows to quickly and easily compare files and folders";
|
||||||
|
@ -25,6 +25,8 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
NIX_LDFLAGS = "-lsvn_fs-1";
|
NIX_LDFLAGS = "-lsvn_fs-1";
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/svn-all-fast-export/svn2git";
|
homepage = "https://github.com/svn-all-fast-export/svn2git";
|
||||||
description = "A fast-import based converter for an svn repo to git repos";
|
description = "A fast-import based converter for an svn repo to git repos";
|
||||||
|
@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
|
|||||||
"-DCMAKE_CXX_FLAGS=-I${obs-studio.src}/UI/obs-frontend-api"
|
"-DCMAKE_CXX_FLAGS=-I${obs-studio.src}/UI/obs-frontend-api"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Network A/V plugin for OBS Studio";
|
description = "Network A/V plugin for OBS Studio";
|
||||||
homepage = "https://github.com/Palakis/obs-ndi";
|
homepage = "https://github.com/Palakis/obs-ndi";
|
||||||
|
@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [ cmake ];
|
nativeBuildInputs = [ cmake ];
|
||||||
buildInputs = [ qtbase obs-studio ];
|
buildInputs = [ qtbase obs-studio ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
# Fixes the segfault when stopping the plugin
|
# Fixes the segfault when stopping the plugin
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
|
@ -41,6 +41,8 @@ stdenv.mkDerivation rec {
|
|||||||
++ optional stdenv.isDarwin llvmPackages.openmp
|
++ optional stdenv.isDarwin llvmPackages.openmp
|
||||||
;
|
;
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
LIBOPENSHOT_AUDIO_DIR = libopenshot-audio;
|
LIBOPENSHOT_AUDIO_DIR = libopenshot-audio;
|
||||||
"UNITTEST++_INCLUDE_DIR" = "${unittest-cpp}/include/UnitTest++";
|
"UNITTEST++_INCLUDE_DIR" = "${unittest-cpp}/include/UnitTest++";
|
||||||
|
|
||||||
|
@ -24,10 +24,10 @@ fixupOutputHooks+=(patchShebangsAuto)
|
|||||||
patchShebangs() {
|
patchShebangs() {
|
||||||
local pathName
|
local pathName
|
||||||
|
|
||||||
if [ "$1" = "--host" ]; then
|
if [[ "$1" == "--host" ]]; then
|
||||||
pathName=HOST_PATH
|
pathName=HOST_PATH
|
||||||
shift
|
shift
|
||||||
elif [ "$1" = "--build" ]; then
|
elif [[ "$1" == "--build" ]]; then
|
||||||
pathName=PATH
|
pathName=PATH
|
||||||
shift
|
shift
|
||||||
fi
|
fi
|
||||||
@ -41,7 +41,7 @@ patchShebangs() {
|
|||||||
local oldInterpreterLine
|
local oldInterpreterLine
|
||||||
local newInterpreterLine
|
local newInterpreterLine
|
||||||
|
|
||||||
if [ $# -eq 0 ]; then
|
if [[ $# -eq 0 ]]; then
|
||||||
echo "No arguments supplied to patchShebangs" >&2
|
echo "No arguments supplied to patchShebangs" >&2
|
||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
@ -50,29 +50,29 @@ patchShebangs() {
|
|||||||
while IFS= read -r -d $'\0' f; do
|
while IFS= read -r -d $'\0' f; do
|
||||||
isScript "$f" || continue
|
isScript "$f" || continue
|
||||||
|
|
||||||
oldInterpreterLine=$(head -1 "$f" | tail -c+3)
|
read -r oldInterpreterLine < "$f"
|
||||||
read -r oldPath arg0 args <<< "$oldInterpreterLine"
|
read -r oldPath arg0 args <<< "${oldInterpreterLine:2}"
|
||||||
|
|
||||||
if [ -z "$pathName" ]; then
|
if [[ -z "$pathName" ]]; then
|
||||||
if [ -n "$strictDeps" ] && [[ "$f" = "$NIX_STORE"* ]]; then
|
if [[ -n $strictDeps && $f == "$NIX_STORE"* ]]; then
|
||||||
pathName=HOST_PATH
|
pathName=HOST_PATH
|
||||||
else
|
else
|
||||||
pathName=PATH
|
pathName=PATH
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if $(echo "$oldPath" | grep -q "/bin/env$"); then
|
if [[ "$oldPath" == *"/bin/env" ]]; then
|
||||||
# Check for unsupported 'env' functionality:
|
# Check for unsupported 'env' functionality:
|
||||||
# - options: something starting with a '-'
|
# - options: something starting with a '-'
|
||||||
# - environment variables: foo=bar
|
# - environment variables: foo=bar
|
||||||
if $(echo "$arg0" | grep -q -- "^-.*\|.*=.*"); then
|
if [[ $arg0 == "-"* || $arg0 == *"="* ]]; then
|
||||||
echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" >&2
|
echo "$f: unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" >&2
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
newPath="$(PATH="${!pathName}" command -v "$arg0" || true)"
|
newPath="$(PATH="${!pathName}" command -v "$arg0" || true)"
|
||||||
else
|
else
|
||||||
if [ "$oldPath" = "" ]; then
|
if [[ -z $oldPath ]]; then
|
||||||
# If no interpreter is specified linux will use /bin/sh. Set
|
# If no interpreter is specified linux will use /bin/sh. Set
|
||||||
# oldpath="/bin/sh" so that we get /nix/store/.../sh.
|
# oldpath="/bin/sh" so that we get /nix/store/.../sh.
|
||||||
oldPath="/bin/sh"
|
oldPath="/bin/sh"
|
||||||
@ -84,19 +84,19 @@ patchShebangs() {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Strip trailing whitespace introduced when no arguments are present
|
# Strip trailing whitespace introduced when no arguments are present
|
||||||
newInterpreterLine="$(echo "$newPath $args" | sed 's/[[:space:]]*$//')"
|
newInterpreterLine="$newPath $args"
|
||||||
|
newInterpreterLine=${newInterpreterLine%${newInterpreterLine##*[![:space:]]}}
|
||||||
|
|
||||||
if [ -n "$oldPath" -a "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ]; then
|
if [[ -n "$oldPath" && "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ]]; then
|
||||||
if [ -n "$newPath" -a "$newPath" != "$oldPath" ]; then
|
if [[ -n "$newPath" && "$newPath" != "$oldPath" ]]; then
|
||||||
echo "$f: interpreter directive changed from \"$oldInterpreterLine\" to \"$newInterpreterLine\""
|
echo "$f: interpreter directive changed from \"$oldInterpreterLine\" to \"$newInterpreterLine\""
|
||||||
# escape the escape chars so that sed doesn't interpret them
|
# escape the escape chars so that sed doesn't interpret them
|
||||||
escapedInterpreterLine=$(echo "$newInterpreterLine" | sed 's|\\|\\\\|g')
|
escapedInterpreterLine=${newInterpreterLine//\\/\\\\}
|
||||||
|
|
||||||
# Preserve times, see: https://github.com/NixOS/nixpkgs/pull/33281
|
# Preserve times, see: https://github.com/NixOS/nixpkgs/pull/33281
|
||||||
timestamp=$(mktemp)
|
timestamp=$(stat --printf "%y" "$f")
|
||||||
touch -r "$f" "$timestamp"
|
|
||||||
sed -i -e "1 s|.*|#\!$escapedInterpreterLine|" "$f"
|
sed -i -e "1 s|.*|#\!$escapedInterpreterLine|" "$f"
|
||||||
touch -r "$timestamp" "$f"
|
touch --date "$timestamp" "$f"
|
||||||
rm "$timestamp"
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done < <(find "$@" -type f -perm -0100 -print0)
|
done < <(find "$@" -type f -perm -0100 -print0)
|
||||||
@ -105,12 +105,12 @@ patchShebangs() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
patchShebangsAuto () {
|
patchShebangsAuto () {
|
||||||
if [ -z "${dontPatchShebangs-}" -a -e "$prefix" ]; then
|
if [[ -z "${dontPatchShebangs-}" && -e "$prefix" ]]; then
|
||||||
|
|
||||||
# Dev output will end up being run on the build platform. An
|
# Dev output will end up being run on the build platform. An
|
||||||
# example case of this is sdl2-config. Otherwise, we can just
|
# example case of this is sdl2-config. Otherwise, we can just
|
||||||
# use the runtime path (--host).
|
# use the runtime path (--host).
|
||||||
if [ "$output" != out ] && [ "$output" = "$outputDev" ]; then
|
if [[ "$output" != out && "$output" = "$outputDev" ]]; then
|
||||||
patchShebangs --build "$prefix"
|
patchShebangs --build "$prefix"
|
||||||
else
|
else
|
||||||
patchShebangs --host "$prefix"
|
patchShebangs --host "$prefix"
|
||||||
|
@ -35,6 +35,8 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
dontDropIconThemeCache = true;
|
dontDropIconThemeCache = true;
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
postInstall = ''
|
postInstall = ''
|
||||||
for theme in $out/share/icons/*; do
|
for theme in $out/share/icons/*; do
|
||||||
gtk-update-icon-cache $theme
|
gtk-update-icon-cache $theme
|
||||||
|
@ -37,12 +37,12 @@ function pytestCheckPhase() {
|
|||||||
disabledTestsString=$(_pytestComputeDisabledTestsString "${disabledTests[@]}")
|
disabledTestsString=$(_pytestComputeDisabledTestsString "${disabledTests[@]}")
|
||||||
args+=" -k \""$disabledTestsString"\""
|
args+=" -k \""$disabledTestsString"\""
|
||||||
fi
|
fi
|
||||||
for file in "${disabledTestFiles[@]}"; do
|
for file in ${disabledTestFiles[@]}; do
|
||||||
if [ ! -f "$file" ]; then
|
if [ ! -f "$file" ]; then
|
||||||
echo "Disabled test file \"$file\" does not exist. Aborting"
|
echo "Disabled test file \"$file\" does not exist. Aborting"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
args+=" --ignore=$file"
|
args+=" --ignore=\"$file\""
|
||||||
done
|
done
|
||||||
args+=" ${pytestFlagsArray[@]}"
|
args+=" ${pytestFlagsArray[@]}"
|
||||||
eval "@pythonCheckInterpreter@ $args"
|
eval "@pythonCheckInterpreter@ $args"
|
||||||
|
@ -31,6 +31,8 @@ stdenv.mkDerivation rec {
|
|||||||
++ optional (!stdenv.isDarwin) alsaLib
|
++ optional (!stdenv.isDarwin) alsaLib
|
||||||
++ optional useSCEL emacs;
|
++ optional useSCEL emacs;
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Programming language for real time audio synthesis";
|
description = "Programming language for real time audio synthesis";
|
||||||
homepage = "https://supercollider.github.io";
|
homepage = "https://supercollider.github.io";
|
||||||
|
@ -57,6 +57,8 @@ in stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [ gtk2 gtk3 qt5.qtbase gnutls openssl libgcrypt libgpgerror ];
|
buildInputs = [ gtk2 gtk3 qt5.qtbase gnutls openssl libgcrypt libgpgerror ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "OS abstraction functions used by aqbanking and related tools";
|
description = "OS abstraction functions used by aqbanking and related tools";
|
||||||
homepage = "http://www2.aquamaniac.de/sites/download/packages.php?package=01&showall=1";
|
homepage = "http://www2.aquamaniac.de/sites/download/packages.php?package=01&showall=1";
|
||||||
|
@ -22,6 +22,8 @@ stdenv.mkDerivation rec {
|
|||||||
++ (lib.optionals withQt4 [ qt4 ])
|
++ (lib.optionals withQt4 [ qt4 ])
|
||||||
++ (lib.optionals withQt5 (with qt5; [ qtbase qttools ]));
|
++ (lib.optionals withQt5 (with qt5; [ qtbase qttools ]));
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "http://drobilla.net/software/suil";
|
homepage = "http://drobilla.net/software/suil";
|
||||||
description = "A lightweight C library for loading and wrapping LV2 plugin UIs";
|
description = "A lightweight C library for loading and wrapping LV2 plugin UIs";
|
||||||
|
@ -13,6 +13,7 @@ stdenv.mkDerivation rec {
|
|||||||
nativeBuildInputs = [
|
nativeBuildInputs = [
|
||||||
qmake
|
qmake
|
||||||
];
|
];
|
||||||
|
dontWrapQtApps = true;
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
sed -i 's/CONFIG += staticlib/CONFIG += shared/' dxflib.pro
|
sed -i 's/CONFIG += staticlib/CONFIG += shared/' dxflib.pro
|
||||||
'';
|
'';
|
||||||
|
@ -23,6 +23,8 @@ mkDerivation rec {
|
|||||||
# Silence noisy warning
|
# Silence noisy warning
|
||||||
CXXFLAGS = "-Wno-deprecated-copy";
|
CXXFLAGS = "-Wno-deprecated-copy";
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
# Detection script is broken
|
# Detection script is broken
|
||||||
"-DQGLVIEWER_INCLUDE_DIR=${libqglviewer}/include/QGLViewer"
|
"-DQGLVIEWER_INCLUDE_DIR=${libqglviewer}/include/QGLViewer"
|
||||||
|
@ -22,11 +22,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "gcr";
|
pname = "gcr";
|
||||||
version = "3.38.0";
|
version = "3.38.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
url = "mirror://gnome/sources/${pname}/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
|
||||||
sha256 = "1q97pba4bzjndm1vlvicyv8mrl0n589qsw71dp8jrz2payvcfk56";
|
sha256 = "F/yvnEqTpl+xxyuCZDuxAsEzRAhGh9WIbqZjE4aNnsk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
|
@ -12,6 +12,7 @@ stdenv.mkDerivation rec {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
dontWrapQtApps = true;
|
||||||
nativeBuildInputs = [ bison flex ];
|
nativeBuildInputs = [ bison flex ];
|
||||||
buildInputs = [ perl gmp mpfr ]
|
buildInputs = [ perl gmp mpfr ]
|
||||||
++ lib.optional enableGist qtbase;
|
++ lib.optional enableGist qtbase;
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ lib, stdenv, fetchurl, python }:
|
{ lib, stdenv, fetchurl, python }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "geos-3.8.1";
|
name = "geos-3.9.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://download.osgeo.org/geos/${name}.tar.bz2";
|
url = "https://download.osgeo.org/geos/${name}.tar.bz2";
|
||||||
sha256 = "1xqpmr10xi0n9sj47fbwc89qb0yr9imh4ybk0jsxpffy111syn22";
|
sha256 = "sha256-vYCCzxL0XydjAZPHi9taPLqEe4HnKyAmg1bCpPwGUmk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{ config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkg-config, lzip
|
{ config, lib, stdenv, fetchurl, zlib, lzo, libtasn1, nettle, pkg-config, lzip
|
||||||
, perl, gmp, autoconf, autogen, automake, libidn, p11-kit, libiconv
|
, perl, gmp, autoconf, automake, libidn, p11-kit, libiconv
|
||||||
, unbound, dns-root-data, gettext, cacert, util-linux
|
, unbound, dns-root-data, gettext, cacert, util-linux
|
||||||
, guileBindings ? config.gnutls.guile or false, guile
|
, guileBindings ? config.gnutls.guile or false, guile
|
||||||
, tpmSupport ? false, trousers, which, nettools, libunistring
|
, tpmSupport ? false, trousers, which, nettools, libunistring
|
||||||
@ -71,7 +71,7 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
buildInputs = [ lzo lzip libtasn1 libidn p11-kit zlib gmp autogen libunistring unbound gettext libiconv ]
|
buildInputs = [ lzo lzip libtasn1 libidn p11-kit zlib gmp libunistring unbound gettext libiconv ]
|
||||||
++ lib.optional (isDarwin && withSecurity) Security
|
++ lib.optional (isDarwin && withSecurity) Security
|
||||||
++ lib.optional (tpmSupport && stdenv.isLinux) trousers
|
++ lib.optional (tpmSupport && stdenv.isLinux) trousers
|
||||||
++ lib.optional guileBindings guile;
|
++ lib.optional guileBindings guile;
|
||||||
|
@ -49,6 +49,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
configureFlags = [
|
configureFlags = [
|
||||||
"--enable-fixed-path=${gnupg}/bin"
|
"--enable-fixed-path=${gnupg}/bin"
|
||||||
"--with-libgpg-error-prefix=${libgpgerror.dev}"
|
"--with-libgpg-error-prefix=${libgpgerror.dev}"
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
{ fetchurl, lib, stdenv, libidn, kerberos }:
|
{ fetchurl, lib, stdenv, libidn, kerberos }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "gsasl-1.8.0";
|
name = "gsasl-1.10.0";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnu/gsasl/${name}.tar.gz";
|
url = "mirror://gnu/gsasl/${name}.tar.gz";
|
||||||
sha256 = "1rci64cxvcfr8xcjpqc4inpfq7aw4snnsbf5xz7d30nhvv8n40ii";
|
sha256 = "sha256-hby9juYJWt54cCY6KOvLiDL1Qepzk5dUlJJgFcB1aNM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [ libidn kerberos ];
|
buildInputs = [ libidn kerberos ];
|
||||||
|
@ -12,11 +12,11 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "imlib2";
|
pname = "imlib2";
|
||||||
version = "1.7.0";
|
version = "1.7.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/enlightenment/${pname}-${version}.tar.bz2";
|
url = "mirror://sourceforge/enlightenment/${pname}-${version}.tar.bz2";
|
||||||
sha256 = "0zdk4afdrrr1539f2q15zja19j4wwfmpswzws2ffgflcnhywlxhr";
|
sha256 = "sha256-AzpqY53LyOA/Zf8F5XBo5zRtUO4vL/8wS7kJWhsrxAc=";
|
||||||
};
|
};
|
||||||
|
|
||||||
buildInputs = [
|
buildInputs = [
|
||||||
|
@ -1 +1 @@
|
|||||||
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.76/ -A '*.tar.xz' )
|
WGET_ARGS=( https://download.kde.org/stable/frameworks/5.78/ -A '*.tar.xz' )
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
mkDerivation, lib,
|
mkDerivation, lib, fetchpatch,
|
||||||
extra-cmake-modules,
|
extra-cmake-modules,
|
||||||
kconfig, kwidgetsaddons, qtbase, qttools
|
kconfig, kwidgetsaddons, qtbase, qttools
|
||||||
}:
|
}:
|
||||||
@ -7,6 +7,13 @@
|
|||||||
mkDerivation {
|
mkDerivation {
|
||||||
name = "kcompletion";
|
name = "kcompletion";
|
||||||
meta = { maintainers = [ lib.maintainers.ttuegel ]; };
|
meta = { maintainers = [ lib.maintainers.ttuegel ]; };
|
||||||
|
patches = [
|
||||||
|
# https://mail.kde.org/pipermail/distributions/2021-January/000928.html
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://invent.kde.org/frameworks/kcompletion/commit/7acda936f06193e9fc85ae5cf9ccc8d65971f657.patch";
|
||||||
|
sha256 = "150ff506rhr5pin5363ks222vhv8qd77y5s5nyylcbdjry3ljd3n";
|
||||||
|
})
|
||||||
|
];
|
||||||
nativeBuildInputs = [ extra-cmake-modules ];
|
nativeBuildInputs = [ extra-cmake-modules ];
|
||||||
buildInputs = [ kconfig kwidgetsaddons qttools ];
|
buildInputs = [ kconfig kwidgetsaddons qttools ];
|
||||||
propagatedBuildInputs = [ qtbase ];
|
propagatedBuildInputs = [ qtbase ];
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
mkDerivation, lib,
|
mkDerivation, lib,
|
||||||
extra-cmake-modules,
|
extra-cmake-modules,
|
||||||
qtbase, qtx11extras,
|
qtbase, qtx11extras, wayland,
|
||||||
}:
|
}:
|
||||||
|
|
||||||
mkDerivation {
|
mkDerivation {
|
||||||
@ -11,7 +11,7 @@ mkDerivation {
|
|||||||
broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
|
broken = builtins.compareVersions qtbase.version "5.7.0" < 0;
|
||||||
};
|
};
|
||||||
nativeBuildInputs = [ extra-cmake-modules ];
|
nativeBuildInputs = [ extra-cmake-modules ];
|
||||||
buildInputs = [ qtx11extras ];
|
buildInputs = [ qtx11extras wayland ];
|
||||||
propagatedBuildInputs = [ qtbase ];
|
propagatedBuildInputs = [ qtbase ];
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
{
|
{
|
||||||
mkDerivation, lib,
|
mkDerivation, lib, fetchpatch,
|
||||||
extra-cmake-modules, kdoctools, qttools,
|
extra-cmake-modules, kdoctools, qttools,
|
||||||
karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
|
karchive, kbookmarks, kcompletion, kconfig, kconfigwidgets, kcoreaddons,
|
||||||
kdbusaddons, ki18n, kiconthemes, kitemviews, kjobwidgets, knotifications,
|
kdbusaddons, ki18n, kiconthemes, kitemviews, kjobwidgets, knotifications,
|
||||||
@ -24,5 +24,10 @@ mkDerivation {
|
|||||||
patches = [
|
patches = [
|
||||||
./samba-search-path.patch
|
./samba-search-path.patch
|
||||||
./kio-debug-module-loader.patch
|
./kio-debug-module-loader.patch
|
||||||
|
# https://mail.kde.org/pipermail/distributions/2021-February/000938.html
|
||||||
|
(fetchpatch {
|
||||||
|
url = "https://invent.kde.org/frameworks/kio/commit/a183dd0d1ee0659e5341c7cb4117df27edd6f125.patch";
|
||||||
|
sha256 = "1msnzi93zggxgarx962gnlz1slx13nc3l54wib3rdlj0xnnlfdnd";
|
||||||
|
})
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -24,6 +24,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
nativeBuildInputs = [ extra-cmake-modules ];
|
nativeBuildInputs = [ extra-cmake-modules ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
maintainers = with lib.maintainers; [ peterhoeg ];
|
maintainers = with lib.maintainers; [ peterhoeg ];
|
||||||
# The build requires at least Qt 5.14:
|
# The build requires at least Qt 5.14:
|
||||||
|
@ -2,12 +2,12 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libaom";
|
pname = "libaom";
|
||||||
version = "2.0.0";
|
version = "2.0.1";
|
||||||
|
|
||||||
src = fetchgit {
|
src = fetchgit {
|
||||||
url = "https://aomedia.googlesource.com/aom";
|
url = "https://aomedia.googlesource.com/aom";
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "1616xjhj6770ykn82ml741h8hx44v507iky3s9h7a5lnk9d4cxzy";
|
sha256 = "1vakwmcwvmmrdw7460m8hzq96y71lxqix8b2g07c6s12br0rrdhl";
|
||||||
};
|
};
|
||||||
|
|
||||||
patches = [ ./outputs.patch ];
|
patches = [ ./outputs.patch ];
|
||||||
|
@ -21,6 +21,8 @@ stdenv.mkDerivation rec {
|
|||||||
dontUseQmakeConfigure = true;
|
dontUseQmakeConfigure = true;
|
||||||
configureFlags = [ "-config" "release" ];
|
configureFlags = [ "-config" "release" ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
sed -i -e 's|/bin/pwd|pwd|g' configure
|
sed -i -e 's|/bin/pwd|pwd|g' configure
|
||||||
'';
|
'';
|
||||||
|
@ -20,6 +20,8 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
cmakeFlags = [ "-DWITH_DOC=OFF" ];
|
cmakeFlags = [ "-DWITH_DOC=OFF" ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Provides a Qt implementation of the DBusMenu spec";
|
description = "Provides a Qt implementation of the DBusMenu spec";
|
||||||
inherit homepage;
|
inherit homepage;
|
||||||
|
@ -15,6 +15,8 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
cmakeFlags = [ "-DWITH_DOC=OFF" ];
|
cmakeFlags = [ "-DWITH_DOC=OFF" ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://launchpad.net/libdbusmenu-qt";
|
homepage = "https://launchpad.net/libdbusmenu-qt";
|
||||||
description = "Provides a Qt implementation of the DBusMenu spec";
|
description = "Provides a Qt implementation of the DBusMenu spec";
|
||||||
|
@ -6,11 +6,11 @@ assert enableCapabilities -> stdenv.isLinux;
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libgcrypt";
|
pname = "libgcrypt";
|
||||||
version = "1.8.7";
|
version = "1.9.1";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnupg/libgcrypt/${pname}-${version}.tar.bz2";
|
url = "mirror://gnupg/libgcrypt/${pname}-${version}.tar.bz2";
|
||||||
sha256 = "0j27jxhjay78by940d64778nxwbysxynv5mq6iq1nmlrh810zdq3";
|
sha256 = "1nb50bgzp83q6r5cz4v40y1mcbhpqwqyxlay87xp1lrbkf5pm9n5";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" "info" ];
|
outputs = [ "out" "dev" "info" ];
|
||||||
|
@ -17,11 +17,11 @@
|
|||||||
};
|
};
|
||||||
in stdenv.mkDerivation (rec {
|
in stdenv.mkDerivation (rec {
|
||||||
pname = "libgpg-error";
|
pname = "libgpg-error";
|
||||||
version = "1.38";
|
version = "1.41";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://gnupg/${pname}/${pname}-${version}.tar.bz2";
|
url = "mirror://gnupg/${pname}/${pname}-${version}.tar.bz2";
|
||||||
sha256 = "00px79xzyc5lj8aig7i4fhk29h1lkqp4840wjfgi9mv9m9sq566q";
|
sha256 = "0hi7jbcs1l9kxzhiqcs2iivsb048642mwaimgqyh1hy3bas7ic34";
|
||||||
};
|
};
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
@ -66,7 +66,8 @@ in stdenv.mkDerivation (rec {
|
|||||||
doCheck = true; # not cross
|
doCheck = true; # not cross
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://www.gnupg.org/related_software/libgpg-error/index.html";
|
homepage = "https://www.gnupg.org/software/libgpg-error/index.html";
|
||||||
|
changelog = "https://git.gnupg.org/cgi-bin/gitweb.cgi?p=libgpg-error.git;a=blob;f=NEWS;hb=refs/tags/libgpg-error-${version}";
|
||||||
description = "A small library that defines common error values for all GnuPG components";
|
description = "A small library that defines common error values for all GnuPG components";
|
||||||
|
|
||||||
longDescription = ''
|
longDescription = ''
|
||||||
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libimagequant";
|
pname = "libimagequant";
|
||||||
version = "2.13.1";
|
version = "2.14.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "ImageOptim";
|
owner = "ImageOptim";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "1543h1i59k2hbj2g8shcl8fvhz2silipacynwjgw412r38hkr33j";
|
sha256 = "sha256-XP/GeZC8TCgBPqtScY9eneZHFter1kdWf/yko0p2VYQ=";
|
||||||
};
|
};
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
|
@ -27,6 +27,8 @@ in stdenv.mkDerivation rec {
|
|||||||
inherit mainVersion;
|
inherit mainVersion;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "A BitTorrent library used by KTorrent";
|
description = "A BitTorrent library used by KTorrent";
|
||||||
homepage = "https://www.kde.org/applications/internet/ktorrent/";
|
homepage = "https://www.kde.org/applications/internet/ktorrent/";
|
||||||
|
@ -23,6 +23,8 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs = [ fftwSinglePrec libsamplerate qtbase ]
|
buildInputs = [ fftwSinglePrec libsamplerate qtbase ]
|
||||||
++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.SystemConfiguration;
|
++ lib.optional stdenv.isDarwin darwin.apple_sdk.frameworks.SystemConfiguration;
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/lastfm/liblastfm";
|
homepage = "https://github.com/lastfm/liblastfm";
|
||||||
repositories.git = "git://github.com/lastfm/liblastfm.git";
|
repositories.git = "git://github.com/lastfm/liblastfm.git";
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
{ lib, stdenv, fetchurl, pkg-config, libmnl }:
|
{ lib, stdenv, fetchurl, pkg-config, libmnl }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
version = "1.1.8";
|
version = "1.1.9";
|
||||||
pname = "libnftnl";
|
pname = "libnftnl";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2";
|
url = "https://netfilter.org/projects/${pname}/files/${pname}-${version}.tar.bz2";
|
||||||
sha256 = "04dp797llg3cqzivwrql30wg9mfr0ngnp0v5gs7jcdmp11dzm8q4";
|
sha256 = "16jbp4fs5dz2yf4c3bl1sb48x9x9wi1chv39zwmfgya1k9pimcp9";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
@ -13,6 +13,8 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs = [ qtbase libGLU ]
|
buildInputs = [ qtbase libGLU ]
|
||||||
++ lib.optional stdenv.isDarwin AGL;
|
++ lib.optional stdenv.isDarwin AGL;
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
cd QGLViewer
|
cd QGLViewer
|
||||||
'';
|
'';
|
||||||
|
@ -4,11 +4,11 @@
|
|||||||
# need pkg-config so that libshout installs ${out}/lib/pkgconfig/shout.pc
|
# need pkg-config so that libshout installs ${out}/lib/pkgconfig/shout.pc
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "libshout-2.4.4";
|
name = "libshout-2.4.5";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "http://downloads.xiph.org/releases/libshout/${name}.tar.gz";
|
url = "http://downloads.xiph.org/releases/libshout/${name}.tar.gz";
|
||||||
sha256 = "1hz670a4pfpsb89b0mymy8nw4rx8x0vmh61gq6j1vbg70mfhrscc";
|
sha256 = "sha256-2eVoZopnOZTr4/HrXyvuBuMjal25K40MSH4cD4hqaJA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" "doc" ];
|
outputs = [ "out" "dev" "doc" ];
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libwacom";
|
pname = "libwacom";
|
||||||
version = "1.7";
|
version = "1.8";
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
|
|||||||
owner = "linuxwacom";
|
owner = "linuxwacom";
|
||||||
repo = "libwacom";
|
repo = "libwacom";
|
||||||
rev = "libwacom-${version}";
|
rev = "libwacom-${version}";
|
||||||
sha256 = "sha256-kF4Q3ACiVlUbEjS2YqwHA42QknKMLqX9US31PmXtS/I=";
|
sha256 = "sha256-vkBkOE4aVX/6xKjslkqlZkh5jdYVEawvvBLpj8PpuiA=";
|
||||||
};
|
};
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config meson ninja doxygen ];
|
nativeBuildInputs = [ pkg-config meson ninja doxygen ];
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
, xkeyboard_config, libxcb, libxml2
|
, xkeyboard_config, libxcb, libxml2
|
||||||
, python3
|
, python3
|
||||||
, libX11
|
, libX11
|
||||||
|
# To enable the "interactive-wayland" subcommand of xkbcli:
|
||||||
|
, withWaylandSupport ? false, wayland, wayland-protocols
|
||||||
}:
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
@ -13,18 +15,23 @@ stdenv.mkDerivation rec {
|
|||||||
sha256 = "0lmwglj16anhpaq0h830xsl1ivknv75i4lir9bk88aq73s2jy852";
|
sha256 = "0lmwglj16anhpaq0h830xsl1ivknv75i4lir9bk88aq73s2jy852";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
patches = [
|
||||||
|
./fix-cross-compilation.patch
|
||||||
|
];
|
||||||
|
|
||||||
outputs = [ "out" "dev" "doc" ];
|
outputs = [ "out" "dev" "doc" ];
|
||||||
|
|
||||||
nativeBuildInputs = [ meson ninja pkg-config yacc doxygen ];
|
nativeBuildInputs = [ meson ninja pkg-config yacc doxygen ]
|
||||||
buildInputs = [ xkeyboard_config libxcb libxml2 ];
|
++ lib.optional withWaylandSupport wayland;
|
||||||
|
buildInputs = [ xkeyboard_config libxcb libxml2 ]
|
||||||
|
++ lib.optionals withWaylandSupport [ wayland wayland-protocols ];
|
||||||
checkInputs = [ python3 ];
|
checkInputs = [ python3 ];
|
||||||
|
|
||||||
mesonFlags = [
|
mesonFlags = [
|
||||||
"-Dxkb-config-root=${xkeyboard_config}/etc/X11/xkb"
|
"-Dxkb-config-root=${xkeyboard_config}/etc/X11/xkb"
|
||||||
"-Dxkb-config-extra-path=/etc/xkb" # default=$sysconfdir/xkb ($out/etc)
|
"-Dxkb-config-extra-path=/etc/xkb" # default=$sysconfdir/xkb ($out/etc)
|
||||||
"-Dx-locale-root=${libX11.out}/share/X11/locale"
|
"-Dx-locale-root=${libX11.out}/share/X11/locale"
|
||||||
"-Denable-wayland=false"
|
"-Denable-wayland=${lib.boolToString withWaylandSupport}"
|
||||||
"-Denable-xkbregistry=false" # Optional, separate library (TODO: Install into extra output)
|
|
||||||
];
|
];
|
||||||
|
|
||||||
doCheck = true;
|
doCheck = true;
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
diff --git a/meson.build b/meson.build
|
||||||
|
index 47c436f..536c60b 100644
|
||||||
|
--- a/meson.build
|
||||||
|
+++ b/meson.build
|
||||||
|
@@ -440,13 +440,12 @@ if build_tools
|
||||||
|
if get_option('enable-wayland')
|
||||||
|
wayland_client_dep = dependency('wayland-client', version: '>=1.2.0', required: false)
|
||||||
|
wayland_protocols_dep = dependency('wayland-protocols', version: '>=1.12', required: false)
|
||||||
|
- wayland_scanner_dep = dependency('wayland-scanner', required: false, native: true)
|
||||||
|
- if not wayland_client_dep.found() or not wayland_protocols_dep.found() or not wayland_scanner_dep.found()
|
||||||
|
+ if not wayland_client_dep.found() or not wayland_protocols_dep.found()
|
||||||
|
error('''The Wayland xkbcli programs require wayland-client >= 1.2.0, wayland-protocols >= 1.7 which were not found.
|
||||||
|
You can disable the Wayland xkbcli programs with -Denable-wayland=false.''')
|
||||||
|
endif
|
||||||
|
|
||||||
|
- wayland_scanner = find_program(wayland_scanner_dep.get_pkgconfig_variable('wayland_scanner'))
|
||||||
|
+ wayland_scanner = find_program('wayland-scanner', native: true)
|
||||||
|
wayland_scanner_code_gen = generator(
|
||||||
|
wayland_scanner,
|
||||||
|
output: '@BASENAME@-protocol.c',
|
@ -1,4 +1,4 @@
|
|||||||
{ lib, stdenv, fetchurl, fetchpatch, libxml2, findXMLCatalogs, gettext, python, libgcrypt
|
{ lib, stdenv, fetchurl, fetchpatch, libxml2, findXMLCatalogs, gettext, python3, libgcrypt
|
||||||
, cryptoSupport ? false
|
, cryptoSupport ? false
|
||||||
, pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform
|
, pythonSupport ? stdenv.buildPlatform == stdenv.hostPlatform
|
||||||
}:
|
}:
|
||||||
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
buildInputs = [ libxml2.dev ]
|
buildInputs = [ libxml2.dev ]
|
||||||
++ lib.optional stdenv.isDarwin gettext
|
++ lib.optional stdenv.isDarwin gettext
|
||||||
++ lib.optionals pythonSupport [ libxml2.py python ]
|
++ lib.optionals pythonSupport [ libxml2.py python3 ]
|
||||||
++ lib.optionals cryptoSupport [ libgcrypt ];
|
++ lib.optionals cryptoSupport [ libgcrypt ];
|
||||||
|
|
||||||
propagatedBuildInputs = [ findXMLCatalogs ];
|
propagatedBuildInputs = [ findXMLCatalogs ];
|
||||||
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
|||||||
"--without-debug"
|
"--without-debug"
|
||||||
"--without-mem-debug"
|
"--without-mem-debug"
|
||||||
"--without-debugger"
|
"--without-debugger"
|
||||||
] ++ lib.optional pythonSupport "--with-python=${python}"
|
] ++ lib.optional pythonSupport "--with-python=${python3}"
|
||||||
++ lib.optional (!cryptoSupport) "--without-crypto";
|
++ lib.optional (!cryptoSupport) "--without-crypto";
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
|
|||||||
'' + lib.optionalString pythonSupport ''
|
'' + lib.optionalString pythonSupport ''
|
||||||
mkdir -p $py/nix-support
|
mkdir -p $py/nix-support
|
||||||
echo ${libxml2.py} >> $py/nix-support/propagated-build-inputs
|
echo ${libxml2.py} >> $py/nix-support/propagated-build-inputs
|
||||||
moveToOutput ${python.libPrefix} "$py"
|
moveToOutput ${python3.libPrefix} "$py"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
passthru = {
|
passthru = {
|
||||||
|
@ -1,20 +1,27 @@
|
|||||||
{ lib, stdenv, fetchurl, cmake, perl, zlib }:
|
{ lib, stdenv
|
||||||
|
, cmake
|
||||||
|
, fetchpatch
|
||||||
|
, fetchurl
|
||||||
|
, perl
|
||||||
|
, zlib
|
||||||
|
}:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "libzip";
|
pname = "libzip";
|
||||||
version = "1.6.1";
|
version = "1.7.3";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://www.nih.at/libzip/${pname}-${version}.tar.gz";
|
url = "https://www.nih.at/libzip/${pname}-${version}.tar.gz";
|
||||||
sha256 = "120xgf7cgjmz9d3yp10lks6lhkgxqb4skbmbiiwf46gx868qxsq6";
|
sha256 = "1k5rihiz7m1ahhjzcbq759hb9crzqkgw78pkxga118y5a32pc8hf";
|
||||||
};
|
};
|
||||||
|
|
||||||
# Fix pkg-config file paths
|
# Remove in next release
|
||||||
postPatch = ''
|
patches = [
|
||||||
sed -i CMakeLists.txt \
|
(fetchpatch {
|
||||||
-e 's#\\''${exec_prefix}/''${CMAKE_INSTALL_LIBDIR}#''${CMAKE_INSTALL_FULL_LIBDIR}#' \
|
url = "https://github.com/nih-at/libzip/commit/351201419d79b958783c0cfc7c370243165523ac.patch";
|
||||||
-e 's#\\''${prefix}/''${CMAKE_INSTALL_INCLUDEDIR}#''${CMAKE_INSTALL_FULL_INCLUDEDIR}#'
|
sha256 = "0d93z98ki0yiaza93268cxkl35y1r7ll9f7l8sivx3nfxj2c1n8a";
|
||||||
'';
|
})
|
||||||
|
];
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
|
|
||||||
|
@ -31,7 +31,7 @@ with lib;
|
|||||||
let
|
let
|
||||||
# Release calendar: https://www.mesa3d.org/release-calendar.html
|
# Release calendar: https://www.mesa3d.org/release-calendar.html
|
||||||
# Release frequency: https://www.mesa3d.org/releasing.html#schedule
|
# Release frequency: https://www.mesa3d.org/releasing.html#schedule
|
||||||
version = "20.3.3";
|
version = "20.3.4";
|
||||||
branch = versions.major version;
|
branch = versions.major version;
|
||||||
in
|
in
|
||||||
|
|
||||||
@ -46,7 +46,7 @@ stdenv.mkDerivation {
|
|||||||
"ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
|
"ftp://ftp.freedesktop.org/pub/mesa/${version}/mesa-${version}.tar.xz"
|
||||||
"ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
|
"ftp://ftp.freedesktop.org/pub/mesa/older-versions/${branch}.x/${version}/mesa-${version}.tar.xz"
|
||||||
];
|
];
|
||||||
sha256 = "0mnic7mfv5lgnn3swj7lbif8bl8pi2czlgr01jhq5s9q90nj2kpp";
|
sha256 = "1120kf280hg4h0a2505vxf6rdw8r2ydl3cg4iwkmpx0zxj3sj8fw";
|
||||||
};
|
};
|
||||||
|
|
||||||
prePatch = "patchShebangs .";
|
prePatch = "patchShebangs .";
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
{ lib, stdenv, fetchurl, nspr, perl, zlib, sqlite, darwin, fixDarwinDylibNames, buildPackages, ninja
|
{ lib, stdenv, fetchurl, nspr, perl, zlib
|
||||||
|
, sqlite, ninja
|
||||||
|
, darwin, fixDarwinDylibNames, buildPackages
|
||||||
|
, useP11kit ? true, p11-kit
|
||||||
, # allow FIPS mode. Note that this makes the output non-reproducible.
|
, # allow FIPS mode. Note that this makes the output non-reproducible.
|
||||||
# https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Tech_Notes/nss_tech_note6
|
# https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS/NSS_Tech_Notes/nss_tech_note6
|
||||||
enableFIPS ? false
|
enableFIPS ? false
|
||||||
@ -139,6 +142,11 @@ in stdenv.mkDerivation rec {
|
|||||||
chmod 0755 $out/bin/nss-config
|
chmod 0755 $out/bin/nss-config
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
postInstall = lib.optionalString useP11kit ''
|
||||||
|
# Replace built-in trust with p11-kit connection
|
||||||
|
ln -sf ${p11-kit}/lib/pkcs11/p11-kit-trust.so $out/lib/libnssckbi.so
|
||||||
|
'';
|
||||||
|
|
||||||
postFixup = let
|
postFixup = let
|
||||||
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
|
isCross = stdenv.hostPlatform != stdenv.buildPlatform;
|
||||||
nss = if isCross then buildPackages.nss.tools else "$out";
|
nss = if isCross then buildPackages.nss.tools else "$out";
|
||||||
|
@ -33,6 +33,8 @@ stdenv.mkDerivation rec {
|
|||||||
rmdir $out/bin || true
|
rmdir $out/bin || true
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
postFixup = lib.optionalString stdenv.isDarwin ''
|
postFixup = lib.optionalString stdenv.isDarwin ''
|
||||||
app=$out/Applications/opencsgexample.app/Contents/MacOS/opencsgexample
|
app=$out/Applications/opencsgexample.app/Contents/MacOS/opencsgexample
|
||||||
install_name_tool -change \
|
install_name_tool -change \
|
||||||
|
@ -26,6 +26,8 @@ stdenv.mkDerivation rec {
|
|||||||
# on system paths being set.
|
# on system paths being set.
|
||||||
patches = [ ./gst-plugin-paths.patch ];
|
patches = [ ./gst-plugin-paths.patch ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE =
|
NIX_CFLAGS_COMPILE =
|
||||||
let gstPluginPaths =
|
let gstPluginPaths =
|
||||||
lib.makeSearchPathOutput "lib" "/lib/gstreamer-1.0"
|
lib.makeSearchPathOutput "lib" "/lib/gstreamer-1.0"
|
||||||
|
@ -35,6 +35,8 @@ stdenv.mkDerivation rec {
|
|||||||
extra-cmake-modules
|
extra-cmake-modules
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
"-DCMAKE_BUILD_TYPE=${if debug then "Debug" else "Release"}"
|
"-DCMAKE_BUILD_TYPE=${if debug then "Debug" else "Release"}"
|
||||||
];
|
];
|
||||||
|
@ -58,6 +58,8 @@ stdenv.mkDerivation rec {
|
|||||||
"-DCMAKE_BUILD_TYPE=${if debug then "Debug" else "Release"}"
|
"-DCMAKE_BUILD_TYPE=${if debug then "Debug" else "Release"}"
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
preConfigure = ''
|
preConfigure = ''
|
||||||
cmakeFlags+=" -DPHONON_QT_MKSPECS_INSTALL_DIR=''${!outputDev}/mkspecs"
|
cmakeFlags+=" -DPHONON_QT_MKSPECS_INSTALL_DIR=''${!outputDev}/mkspecs"
|
||||||
cmakeFlags+=" -DPHONON_QT_IMPORTS_INSTALL_DIR=''${!outputBin}/$qtQmlPrefix"
|
cmakeFlags+=" -DPHONON_QT_IMPORTS_INSTALL_DIR=''${!outputBin}/$qtQmlPrefix"
|
||||||
|
@ -16,6 +16,8 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
propagatedBuildInputs = [ polkit glib qtbase ];
|
propagatedBuildInputs = [ polkit glib qtbase ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
postFixup = ''
|
postFixup = ''
|
||||||
# Fix library location in CMake module
|
# Fix library location in CMake module
|
||||||
sed -i "$dev/lib/cmake/PolkitQt5-1/PolkitQt5-1Config.cmake" \
|
sed -i "$dev/lib/cmake/PolkitQt5-1/PolkitQt5-1Config.cmake" \
|
||||||
|
@ -53,6 +53,8 @@ stdenv.mkDerivation rec {
|
|||||||
(mkFlag qt5Support "QT5")
|
(mkFlag qt5Support "QT5")
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://poppler.freedesktop.org/";
|
homepage = "https://poppler.freedesktop.org/";
|
||||||
description = "A PDF rendering library";
|
description = "A PDF rendering library";
|
||||||
|
@ -12,11 +12,11 @@ let
|
|||||||
in
|
in
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "poppler-${suffix}-${version}";
|
name = "poppler-${suffix}-${version}";
|
||||||
version = "20.12.1"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
|
version = "21.01.0"; # beware: updates often break cups-filters build, check texlive and scribusUnstable too!
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "${meta.homepage}/poppler-${version}.tar.xz";
|
url = "${meta.homepage}/poppler-${version}.tar.xz";
|
||||||
sha256 = "0dbv1y9i5ahg6namz6gw2d0njnmrigr4a80dbxvnqad4q232banh";
|
sha256 = "sha256-AW3eNOX4aOqYoyypm2QzJaloIoFQCUK3ET9OyI0g4vM=";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "out" "dev" ];
|
outputs = [ "out" "dev" ];
|
||||||
@ -38,6 +38,8 @@ stdenv.mkDerivation rec {
|
|||||||
sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt
|
sed -i -e '1i cmake_policy(SET CMP0025 NEW)' CMakeLists.txt
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
cmakeFlags = [
|
cmakeFlags = [
|
||||||
(mkFlag true "UNSTABLE_API_ABI_HEADERS") # previously "XPDF_HEADERS"
|
(mkFlag true "UNSTABLE_API_ABI_HEADERS") # previously "XPDF_HEADERS"
|
||||||
(mkFlag (!minimal) "GLIB")
|
(mkFlag (!minimal) "GLIB")
|
||||||
|
@ -17,6 +17,8 @@ stdenv.mkDerivation rec {
|
|||||||
python3 qtbase qtquickcontrols qtsvg ncurses
|
python3 qtbase qtquickcontrols qtsvg ncurses
|
||||||
];
|
];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
patches = [ ./qml-path.patch ];
|
patches = [ ./qml-path.patch ];
|
||||||
installTargets = [ "sub-src-install_subtargets" ];
|
installTargets = [ "sub-src-install_subtargets" ];
|
||||||
|
|
||||||
|
@ -22,6 +22,8 @@ stdenv.mkDerivation rec {
|
|||||||
"PYTHON_PATH=${python}/bin"
|
"PYTHON_PATH=${python}/bin"
|
||||||
"PYTHON_LIB=${python}/lib"];
|
"PYTHON_LIB=${python}/lib"];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
unpackCmd = "unzip $src";
|
unpackCmd = "unzip $src";
|
||||||
|
|
||||||
installPhase = ''
|
installPhase = ''
|
||||||
|
@ -12,6 +12,8 @@ stdenv.mkDerivation rec {
|
|||||||
buildInputs = [ openssl qtbase ];
|
buildInputs = [ openssl qtbase ];
|
||||||
nativeBuildInputs = [ cmake pkg-config ];
|
nativeBuildInputs = [ cmake pkg-config ];
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
# Without this patch cmake fails with a "No known features for CXX compiler"
|
# Without this patch cmake fails with a "No known features for CXX compiler"
|
||||||
# error on darwin
|
# error on darwin
|
||||||
patches = lib.optional stdenv.isDarwin ./move-project.patch ;
|
patches = lib.optional stdenv.isDarwin ./move-project.patch ;
|
||||||
|
@ -9,6 +9,7 @@ stdenv.mkDerivation {
|
|||||||
};
|
};
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
dontWrapQtApps = true;
|
||||||
nativeBuildInputs = [ qmake ];
|
nativeBuildInputs = [ qmake ];
|
||||||
|
|
||||||
buildInputs = [ qtdeclarative ];
|
buildInputs = [ qtdeclarative ];
|
||||||
|
@ -32,6 +32,8 @@ stdenv.mkDerivation {
|
|||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = {
|
meta = {
|
||||||
description = "A QML port of qtermwidget";
|
description = "A QML port of qtermwidget";
|
||||||
homepage = "https://github.com/Swordfish90/qmltermwidget";
|
homepage = "https://github.com/Swordfish90/qmltermwidget";
|
||||||
|
@ -21,6 +21,8 @@ stdenv.mkDerivation {
|
|||||||
NIX_CFLAGS_COMPILE = "-I${qca-qt5}/include/Qca-qt5/QtCrypto";
|
NIX_CFLAGS_COMPILE = "-I${qca-qt5}/include/Qca-qt5/QtCrypto";
|
||||||
NIX_LDFLAGS = "-lqca-qt5";
|
NIX_LDFLAGS = "-lqca-qt5";
|
||||||
|
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Qt library for OAuth authentication";
|
description = "Qt library for OAuth authentication";
|
||||||
inherit (qtbase.meta) platforms;
|
inherit (qtbase.meta) platforms;
|
||||||
|
@ -35,6 +35,7 @@ in stdenv.mkDerivation rec {
|
|||||||
'';
|
'';
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
dontWrapQtApps = true;
|
||||||
|
|
||||||
postPatch = ''
|
postPatch = ''
|
||||||
substituteInPlace qscintilla.pro \
|
substituteInPlace qscintilla.pro \
|
||||||
|
@ -136,7 +136,7 @@ let
|
|||||||
patches = patches.qtbase;
|
patches = patches.qtbase;
|
||||||
inherit bison cups harfbuzz libGL;
|
inherit bison cups harfbuzz libGL;
|
||||||
withGtk3 = true; inherit dconf gtk3;
|
withGtk3 = true; inherit dconf gtk3;
|
||||||
inherit developerBuild decryptSslTraffic;
|
inherit debug developerBuild decryptSslTraffic;
|
||||||
};
|
};
|
||||||
|
|
||||||
qtcharts = callPackage ../modules/qtcharts.nix {};
|
qtcharts = callPackage ../modules/qtcharts.nix {};
|
||||||
@ -188,6 +188,7 @@ let
|
|||||||
qmake = makeSetupHook {
|
qmake = makeSetupHook {
|
||||||
deps = [ self.qtbase.dev ];
|
deps = [ self.qtbase.dev ];
|
||||||
substitutions = {
|
substitutions = {
|
||||||
|
inherit debug;
|
||||||
fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
|
fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
|
||||||
};
|
};
|
||||||
} ../hooks/qmake-hook.sh;
|
} ../hooks/qmake-hook.sh;
|
||||||
|
@ -149,7 +149,7 @@ let
|
|||||||
patches = patches.qtbase;
|
patches = patches.qtbase;
|
||||||
inherit bison cups harfbuzz libGL;
|
inherit bison cups harfbuzz libGL;
|
||||||
withGtk3 = true; inherit dconf gtk3;
|
withGtk3 = true; inherit dconf gtk3;
|
||||||
inherit developerBuild decryptSslTraffic;
|
inherit debug developerBuild decryptSslTraffic;
|
||||||
};
|
};
|
||||||
|
|
||||||
qtcharts = callPackage ../modules/qtcharts.nix {};
|
qtcharts = callPackage ../modules/qtcharts.nix {};
|
||||||
@ -199,6 +199,7 @@ let
|
|||||||
qmake = makeSetupHook {
|
qmake = makeSetupHook {
|
||||||
deps = [ self.qtbase.dev ];
|
deps = [ self.qtbase.dev ];
|
||||||
substitutions = {
|
substitutions = {
|
||||||
|
inherit debug;
|
||||||
fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
|
fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
|
||||||
};
|
};
|
||||||
} ../hooks/qmake-hook.sh;
|
} ../hooks/qmake-hook.sh;
|
||||||
|
@ -182,6 +182,7 @@ let
|
|||||||
qmake = makeSetupHook {
|
qmake = makeSetupHook {
|
||||||
deps = [ self.qtbase.dev ];
|
deps = [ self.qtbase.dev ];
|
||||||
substitutions = {
|
substitutions = {
|
||||||
|
inherit debug;
|
||||||
fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
|
fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh;
|
||||||
};
|
};
|
||||||
} ../hooks/qmake-hook.sh;
|
} ../hooks/qmake-hook.sh;
|
||||||
|
@ -3,6 +3,9 @@
|
|||||||
qmakeFlags=( ${qmakeFlags-} )
|
qmakeFlags=( ${qmakeFlags-} )
|
||||||
|
|
||||||
qmakePrePhase() {
|
qmakePrePhase() {
|
||||||
|
qmakeFlags_orig=( "${qmakeFlags[@]}" )
|
||||||
|
|
||||||
|
# These flags must be added _before_ the flags specified in the derivation.
|
||||||
qmakeFlags=( \
|
qmakeFlags=( \
|
||||||
"PREFIX=$out" \
|
"PREFIX=$out" \
|
||||||
"NIX_OUTPUT_OUT=$out" \
|
"NIX_OUTPUT_OUT=$out" \
|
||||||
@ -11,8 +14,15 @@ qmakePrePhase() {
|
|||||||
"NIX_OUTPUT_DOC=${!outputDev}/${qtDocPrefix:?}" \
|
"NIX_OUTPUT_DOC=${!outputDev}/${qtDocPrefix:?}" \
|
||||||
"NIX_OUTPUT_QML=${!outputBin}/${qtQmlPrefix:?}" \
|
"NIX_OUTPUT_QML=${!outputBin}/${qtQmlPrefix:?}" \
|
||||||
"NIX_OUTPUT_PLUGIN=${!outputBin}/${qtPluginPrefix:?}" \
|
"NIX_OUTPUT_PLUGIN=${!outputBin}/${qtPluginPrefix:?}" \
|
||||||
"${qmakeFlags[@]}" \
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if [ -n "@debug@" ]; then
|
||||||
|
qmakeFlags+=( "CONFIG+=debug" )
|
||||||
|
else
|
||||||
|
qmakeFlags+=( "CONFIG+=release" )
|
||||||
|
fi
|
||||||
|
|
||||||
|
qmakeFlags+=( "${qmakeFlags_orig[@]}" )
|
||||||
}
|
}
|
||||||
prePhases+=" qmakePrePhase"
|
prePhases+=" qmakePrePhase"
|
||||||
|
|
||||||
|
@ -1,3 +1,14 @@
|
|||||||
|
if [[ -n "${__nix_qtbase-}" ]]; then
|
||||||
|
# Throw an error if a different version of Qt was already set up.
|
||||||
|
if [[ "$__nix_qtbase" != "@dev@" ]]; then
|
||||||
|
echo >&2 "Error: detected mismatched Qt dependencies:"
|
||||||
|
echo >&2 " @dev@"
|
||||||
|
echo >&2 " $__nix_qtbase"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else # Only set up Qt once.
|
||||||
|
__nix_qtbase="@dev@"
|
||||||
|
|
||||||
qtPluginPrefix=@qtPluginPrefix@
|
qtPluginPrefix=@qtPluginPrefix@
|
||||||
qtQmlPrefix=@qtQmlPrefix@
|
qtQmlPrefix=@qtQmlPrefix@
|
||||||
qtDocPrefix=@qtDocPrefix@
|
qtDocPrefix=@qtDocPrefix@
|
||||||
@ -5,6 +16,20 @@ qtDocPrefix=@qtDocPrefix@
|
|||||||
. @fix_qt_builtin_paths@
|
. @fix_qt_builtin_paths@
|
||||||
. @fix_qt_module_paths@
|
. @fix_qt_module_paths@
|
||||||
|
|
||||||
|
# Disable debug symbols if qtbase was built without debugging.
|
||||||
|
# This stops -dev paths from leaking into other outputs.
|
||||||
|
if [ -z "@debug@" ]; then
|
||||||
|
NIX_CFLAGS_COMPILE="${NIX_CFLAGS_COMPILE-}${NIX_CFLAGS_COMPILE:+ }-DQT_NO_DEBUG"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Integration with CMake:
|
||||||
|
# Set the CMake build type corresponding to how qtbase was built.
|
||||||
|
if [ -n "@debug@" ]; then
|
||||||
|
cmakeBuildType="Debug"
|
||||||
|
else
|
||||||
|
cmakeBuildType="Release"
|
||||||
|
fi
|
||||||
|
|
||||||
providesQtRuntime() {
|
providesQtRuntime() {
|
||||||
[ -d "$1/$qtPluginPrefix" ] || [ -d "$1/$qtQmlPrefix" ]
|
[ -d "$1/$qtPluginPrefix" ] || [ -d "$1/$qtQmlPrefix" ]
|
||||||
}
|
}
|
||||||
@ -19,7 +44,12 @@ export QMAKEPATH
|
|||||||
QMAKEMODULES=
|
QMAKEMODULES=
|
||||||
export QMAKEMODULES
|
export QMAKEMODULES
|
||||||
|
|
||||||
|
declare -Ag qmakePathSeen=()
|
||||||
qmakePathHook() {
|
qmakePathHook() {
|
||||||
|
# Skip this path if we have seen it before.
|
||||||
|
# MUST use 'if' because 'qmakePathSeen[$]' may be unset.
|
||||||
|
if [ -n "${qmakePathSeen[$1]-}" ]; then return; fi
|
||||||
|
qmakePathSeen[$1]=1
|
||||||
if [ -d "$1/mkspecs" ]
|
if [ -d "$1/mkspecs" ]
|
||||||
then
|
then
|
||||||
QMAKEMODULES="${QMAKEMODULES}${QMAKEMODULES:+:}/mkspecs"
|
QMAKEMODULES="${QMAKEMODULES}${QMAKEMODULES:+:}/mkspecs"
|
||||||
@ -34,7 +64,12 @@ envBuildHostHooks+=(qmakePathHook)
|
|||||||
# package depending on the building package. (This is necessary in case
|
# package depending on the building package. (This is necessary in case
|
||||||
# the building package does not provide runtime dependencies itself and so
|
# the building package does not provide runtime dependencies itself and so
|
||||||
# would not be propagated to the user environment.)
|
# would not be propagated to the user environment.)
|
||||||
|
declare -Ag qtEnvHostTargetSeen=()
|
||||||
qtEnvHostTargetHook() {
|
qtEnvHostTargetHook() {
|
||||||
|
# Skip this path if we have seen it before.
|
||||||
|
# MUST use 'if' because 'qmakePathSeen[$]' may be unset.
|
||||||
|
if [ -n "${qtEnvHostTargetSeen[$1]-}" ]; then return; fi
|
||||||
|
qtEnvHostTargetSeen[$1]=1
|
||||||
if providesQtRuntime "$1" && [ "z${!outputBin}" != "z${!outputDev}" ]
|
if providesQtRuntime "$1" && [ "z${!outputBin}" != "z${!outputDev}" ]
|
||||||
then
|
then
|
||||||
propagatedBuildInputs+=" $1"
|
propagatedBuildInputs+=" $1"
|
||||||
@ -64,3 +99,14 @@ postPatchMkspecs() {
|
|||||||
if [ -z "${dontPatchMkspecs-}" ]; then
|
if [ -z "${dontPatchMkspecs-}" ]; then
|
||||||
postPhases="${postPhases-}${postPhases:+ }postPatchMkspecs"
|
postPhases="${postPhases-}${postPhases:+ }postPatchMkspecs"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
qtPreHook() {
|
||||||
|
# Check that wrapQtAppsHook is used, or it is explicitly disabled.
|
||||||
|
if [[ -z "$__nix_wrapQtAppsHook" && -z "$dontWrapQtApps" ]]; then
|
||||||
|
echo >&2 "Error: wrapQtAppsHook is not used, and dontWrapQtApps is not set."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
prePhases+=" qtPreHook"
|
||||||
|
|
||||||
|
fi
|
||||||
|
@ -1,3 +1,6 @@
|
|||||||
|
if [[ -z "${__nix_wrapQtAppsHook-}" ]]; then
|
||||||
|
__nix_wrapQtAppsHook=1 # Don't run this hook more than once.
|
||||||
|
|
||||||
# Inherit arguments given in mkDerivation
|
# Inherit arguments given in mkDerivation
|
||||||
qtWrapperArgs=( ${qtWrapperArgs-} )
|
qtWrapperArgs=( ${qtWrapperArgs-} )
|
||||||
|
|
||||||
@ -100,3 +103,5 @@ wrapQtAppsHook() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fixupOutputHooks+=(wrapQtAppsHook)
|
fixupOutputHooks+=(wrapQtAppsHook)
|
||||||
|
|
||||||
|
fi
|
||||||
|
@ -9,21 +9,6 @@ args:
|
|||||||
let
|
let
|
||||||
args_ = {
|
args_ = {
|
||||||
|
|
||||||
qmakeFlags = [ ("CONFIG+=" + (if debug then "debug" else "release")) ]
|
|
||||||
++ (args.qmakeFlags or []);
|
|
||||||
|
|
||||||
NIX_CFLAGS_COMPILE = toString (
|
|
||||||
optional (!debug) "-DQT_NO_DEBUG"
|
|
||||||
++ lib.toList (args.NIX_CFLAGS_COMPILE or []));
|
|
||||||
|
|
||||||
cmakeFlags =
|
|
||||||
(args.cmakeFlags or [])
|
|
||||||
++ [
|
|
||||||
("-DCMAKE_BUILD_TYPE=" + (if debug then "Debug" else "Release"))
|
|
||||||
];
|
|
||||||
|
|
||||||
enableParallelBuilding = args.enableParallelBuilding or true;
|
|
||||||
|
|
||||||
nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ wrapQtAppsHook ];
|
nativeBuildInputs = (args.nativeBuildInputs or []) ++ [ wrapQtAppsHook ];
|
||||||
|
|
||||||
};
|
};
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
libGL,
|
libGL,
|
||||||
buildExamples ? false,
|
buildExamples ? false,
|
||||||
buildTests ? false,
|
buildTests ? false,
|
||||||
|
debug ? false,
|
||||||
developerBuild ? false,
|
developerBuild ? false,
|
||||||
decryptSslTraffic ? false
|
decryptSslTraffic ? false
|
||||||
}:
|
}:
|
||||||
@ -33,12 +34,14 @@ let
|
|||||||
compareVersion = v: builtins.compareVersions version v;
|
compareVersion = v: builtins.compareVersions version v;
|
||||||
qmakeCacheName =
|
qmakeCacheName =
|
||||||
if compareVersion "5.12.4" < 0 then ".qmake.cache" else ".qmake.stash";
|
if compareVersion "5.12.4" < 0 then ".qmake.cache" else ".qmake.stash";
|
||||||
|
debugSymbols = debug || developerBuild;
|
||||||
in
|
in
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
stdenv.mkDerivation {
|
||||||
|
|
||||||
name = "qtbase-${version}";
|
name = "qtbase-${version}";
|
||||||
inherit qtCompatVersion src version;
|
inherit qtCompatVersion src version;
|
||||||
|
debug = debugSymbols;
|
||||||
|
|
||||||
propagatedBuildInputs =
|
propagatedBuildInputs =
|
||||||
[
|
[
|
||||||
@ -241,6 +244,7 @@ stdenv.mkDerivation {
|
|||||||
"-I" "${icu.dev}/include"
|
"-I" "${icu.dev}/include"
|
||||||
"-pch"
|
"-pch"
|
||||||
]
|
]
|
||||||
|
++ lib.optional debugSymbols "-debug"
|
||||||
++ lib.optionals (compareVersion "5.11.0" < 0)
|
++ lib.optionals (compareVersion "5.11.0" < 0)
|
||||||
[
|
[
|
||||||
"-qml-debug"
|
"-qml-debug"
|
||||||
@ -397,6 +401,8 @@ stdenv.mkDerivation {
|
|||||||
-e "/^host_bins=/ c host_bins=$dev/bin"
|
-e "/^host_bins=/ c host_bins=$dev/bin"
|
||||||
'';
|
'';
|
||||||
|
|
||||||
|
dontStrip = debugSymbols;
|
||||||
|
|
||||||
setupHook = ../hooks/qtbase-setup-hook.sh;
|
setupHook = ../hooks/qtbase-setup-hook.sh;
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user