Merge staging-next into staging
This commit is contained in:
commit
c63e69cd89
@ -299,13 +299,11 @@ rec {
|
|||||||
# a module will resolve strictly the attributes used as argument but
|
# a module will resolve strictly the attributes used as argument but
|
||||||
# not their values. The values are forwarding the result of the
|
# not their values. The values are forwarding the result of the
|
||||||
# evaluation of the option.
|
# evaluation of the option.
|
||||||
requiredArgs = builtins.attrNames (lib.functionArgs f);
|
|
||||||
context = name: ''while evaluating the module argument `${name}' in "${key}":'';
|
context = name: ''while evaluating the module argument `${name}' in "${key}":'';
|
||||||
extraArgs = builtins.listToAttrs (map (name: {
|
extraArgs = builtins.mapAttrs (name: _:
|
||||||
inherit name;
|
builtins.addErrorContext (context name)
|
||||||
value = builtins.addErrorContext (context name)
|
(args.${name} or config._module.args.${name})
|
||||||
(args.${name} or config._module.args.${name});
|
) (lib.functionArgs f);
|
||||||
}) requiredArgs);
|
|
||||||
|
|
||||||
# Note: we append in the opposite order such that we can add an error
|
# Note: we append in the opposite order such that we can add an error
|
||||||
# context on the explicited arguments of "args" too. This update
|
# context on the explicited arguments of "args" too. This update
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
with lib;
|
with lib;
|
||||||
|
|
||||||
let
|
let
|
||||||
|
package = if cfg.allowAuxiliaryImperativeNetworks
|
||||||
|
then pkgs.wpa_supplicant_ro_ssids
|
||||||
|
else pkgs.wpa_supplicant;
|
||||||
|
|
||||||
cfg = config.networking.wireless;
|
cfg = config.networking.wireless;
|
||||||
configFile = if cfg.networks != {} || cfg.extraConfig != "" || cfg.userControlled.enable then pkgs.writeText "wpa_supplicant.conf" ''
|
configFile = if cfg.networks != {} || cfg.extraConfig != "" || cfg.userControlled.enable then pkgs.writeText "wpa_supplicant.conf" ''
|
||||||
${optionalString cfg.userControlled.enable ''
|
${optionalString cfg.userControlled.enable ''
|
||||||
@ -47,6 +51,16 @@ in {
|
|||||||
description = "Force a specific wpa_supplicant driver.";
|
description = "Force a specific wpa_supplicant driver.";
|
||||||
};
|
};
|
||||||
|
|
||||||
|
allowAuxiliaryImperativeNetworks = mkEnableOption "support for imperative & declarative networks" // {
|
||||||
|
description = ''
|
||||||
|
Whether to allow configuring networks "imperatively" (e.g. via
|
||||||
|
<package>wpa_supplicant_gui</package>) and declaratively via
|
||||||
|
<xref linkend="opt-networking.wireless.networks" />.
|
||||||
|
|
||||||
|
Please note that this adds a custom patch to <package>wpa_supplicant</package>.
|
||||||
|
'';
|
||||||
|
};
|
||||||
|
|
||||||
networks = mkOption {
|
networks = mkOption {
|
||||||
type = types.attrsOf (types.submodule {
|
type = types.attrsOf (types.submodule {
|
||||||
options = {
|
options = {
|
||||||
@ -211,9 +225,9 @@ in {
|
|||||||
message = ''options networking.wireless."${name}".{psk,pskRaw,auth} are mutually exclusive'';
|
message = ''options networking.wireless."${name}".{psk,pskRaw,auth} are mutually exclusive'';
|
||||||
});
|
});
|
||||||
|
|
||||||
environment.systemPackages = [ pkgs.wpa_supplicant ];
|
environment.systemPackages = [ package ];
|
||||||
|
|
||||||
services.dbus.packages = [ pkgs.wpa_supplicant ];
|
services.dbus.packages = [ package ];
|
||||||
services.udev.packages = [ pkgs.crda ];
|
services.udev.packages = [ pkgs.crda ];
|
||||||
|
|
||||||
# FIXME: start a separate wpa_supplicant instance per interface.
|
# FIXME: start a separate wpa_supplicant instance per interface.
|
||||||
@ -230,13 +244,17 @@ in {
|
|||||||
wantedBy = [ "multi-user.target" ];
|
wantedBy = [ "multi-user.target" ];
|
||||||
stopIfChanged = false;
|
stopIfChanged = false;
|
||||||
|
|
||||||
path = [ pkgs.wpa_supplicant ];
|
path = [ package ];
|
||||||
|
|
||||||
script = ''
|
script = let
|
||||||
|
configStr = if cfg.allowAuxiliaryImperativeNetworks
|
||||||
|
then "-c /etc/wpa_supplicant.conf -I ${configFile}"
|
||||||
|
else "-c ${configFile}";
|
||||||
|
in ''
|
||||||
if [ -f /etc/wpa_supplicant.conf -a "/etc/wpa_supplicant.conf" != "${configFile}" ]
|
if [ -f /etc/wpa_supplicant.conf -a "/etc/wpa_supplicant.conf" != "${configFile}" ]
|
||||||
then echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
|
then echo >&2 "<3>/etc/wpa_supplicant.conf present but ignored. Generated ${configFile} is used instead."
|
||||||
fi
|
fi
|
||||||
iface_args="-s -u -D${cfg.driver} -c ${configFile}"
|
iface_args="-s -u -D${cfg.driver} ${configStr}"
|
||||||
${if ifaces == [] then ''
|
${if ifaces == [] then ''
|
||||||
for i in $(cd /sys/class/net && echo *); do
|
for i in $(cd /sys/class/net && echo *); do
|
||||||
DEVTYPE=
|
DEVTYPE=
|
||||||
|
@ -1,72 +0,0 @@
|
|||||||
commit 970fb11a296b5bbdc5e8425851253d2c5913c45e
|
|
||||||
Author: Leon Bottou <leon@bottou.org>
|
|
||||||
Date: Tue Mar 26 20:36:31 2019 -0400
|
|
||||||
|
|
||||||
Fix bug#296
|
|
||||||
|
|
||||||
diff --git a/libdjvu/DjVmDir.cpp b/libdjvu/DjVmDir.cpp
|
|
||||||
index a6a39e0..0a0fac6 100644
|
|
||||||
--- a/libdjvu/DjVmDir.cpp
|
|
||||||
+++ b/libdjvu/DjVmDir.cpp
|
|
||||||
@@ -299,42 +299,44 @@ DjVmDir::decode(const GP<ByteStream> &gstr)
|
|
||||||
memcpy((char*) strings+strings_size, buffer, length);
|
|
||||||
}
|
|
||||||
DEBUG_MSG("size of decompressed names block=" << strings.size() << "\n");
|
|
||||||
- if (strings[strings.size()-1] != 0)
|
|
||||||
- {
|
|
||||||
- int strings_size=strings.size();
|
|
||||||
- strings.resize(strings_size+1);
|
|
||||||
- strings[strings_size] = 0;
|
|
||||||
- }
|
|
||||||
+ int strings_size=strings.size();
|
|
||||||
+ strings.resize(strings_size+3);
|
|
||||||
+ memset((char*) strings+strings_size, 0, 4);
|
|
||||||
|
|
||||||
- // Copy names into the files
|
|
||||||
+ // Copy names into the files
|
|
||||||
const char * ptr=strings;
|
|
||||||
for(pos=files_list;pos;++pos)
|
|
||||||
{
|
|
||||||
GP<File> file=files_list[pos];
|
|
||||||
-
|
|
||||||
+ if (ptr >= (const char*)strings + strings_size)
|
|
||||||
+ G_THROW( "DjVu document is corrupted (DjVmDir)" );
|
|
||||||
file->id=ptr;
|
|
||||||
ptr+=file->id.length()+1;
|
|
||||||
if (file->flags & File::HAS_NAME)
|
|
||||||
{
|
|
||||||
- file->name=ptr;
|
|
||||||
- ptr+=file->name.length()+1;
|
|
||||||
- } else
|
|
||||||
+ file->name=ptr;
|
|
||||||
+ ptr+=file->name.length()+1;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
{
|
|
||||||
file->name=file->id;
|
|
||||||
}
|
|
||||||
if (file->flags & File::HAS_TITLE)
|
|
||||||
{
|
|
||||||
- file->title=ptr;
|
|
||||||
- ptr+=file->title.length()+1;
|
|
||||||
- } else
|
|
||||||
- file->title=file->id;
|
|
||||||
- /* msr debug: multipage file, file->title is null.
|
|
||||||
+ file->title=ptr;
|
|
||||||
+ ptr+=file->title.length()+1;
|
|
||||||
+ }
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ file->title=file->id;
|
|
||||||
+ }
|
|
||||||
+ /* msr debug: multipage file, file->title is null.
|
|
||||||
DEBUG_MSG(file->name << ", " << file->id << ", " << file->title << ", " <<
|
|
||||||
file->offset << ", " << file->size << ", " <<
|
|
||||||
file->is_page() << "\n"); */
|
|
||||||
}
|
|
||||||
|
|
||||||
- // Check that there is only one file with SHARED_ANNO flag on
|
|
||||||
+ // Check that there is only one file with SHARED_ANNO flag on
|
|
||||||
int shared_anno_cnt=0;
|
|
||||||
for(pos=files_list;pos;++pos)
|
|
||||||
{
|
|
@ -1,39 +0,0 @@
|
|||||||
commit b1f4e1b2187d9e5010cd01ceccf20b4a11ce723f
|
|
||||||
Author: Leon Bottou <leon@bottou.org>
|
|
||||||
Date: Tue Mar 26 20:45:46 2019 -0400
|
|
||||||
|
|
||||||
fix for bug #297
|
|
||||||
|
|
||||||
diff --git a/libdjvu/DjVmDir.cpp b/libdjvu/DjVmDir.cpp
|
|
||||||
index 0a0fac6..5a49015 100644
|
|
||||||
--- a/libdjvu/DjVmDir.cpp
|
|
||||||
+++ b/libdjvu/DjVmDir.cpp
|
|
||||||
@@ -309,7 +309,7 @@ DjVmDir::decode(const GP<ByteStream> &gstr)
|
|
||||||
{
|
|
||||||
GP<File> file=files_list[pos];
|
|
||||||
if (ptr >= (const char*)strings + strings_size)
|
|
||||||
- G_THROW( "DjVu document is corrupted (DjVmDir)" );
|
|
||||||
+ G_THROW( ByteStream::EndOfFile );
|
|
||||||
file->id=ptr;
|
|
||||||
ptr+=file->id.length()+1;
|
|
||||||
if (file->flags & File::HAS_NAME)
|
|
||||||
diff --git a/libdjvu/GBitmap.cpp b/libdjvu/GBitmap.cpp
|
|
||||||
index 0e487f0..c2fdbe4 100644
|
|
||||||
--- a/libdjvu/GBitmap.cpp
|
|
||||||
+++ b/libdjvu/GBitmap.cpp
|
|
||||||
@@ -890,11 +890,13 @@ GBitmap::read_rle_raw(ByteStream &bs)
|
|
||||||
int c = 0;
|
|
||||||
while (n >= 0)
|
|
||||||
{
|
|
||||||
- bs.read(&h, 1);
|
|
||||||
+ if (bs.read(&h, 1) <= 0)
|
|
||||||
+ G_THROW( ByteStream::EndOfFile );
|
|
||||||
int x = h;
|
|
||||||
if (x >= (int)RUNOVERFLOWVALUE)
|
|
||||||
{
|
|
||||||
- bs.read(&h, 1);
|
|
||||||
+ if (bs.read(&h, 1) <= 0)
|
|
||||||
+ G_THROW( ByteStream::EndOfFile );
|
|
||||||
x = h + ((x - (int)RUNOVERFLOWVALUE) << 8);
|
|
||||||
}
|
|
||||||
if (c+x > ncolumns)
|
|
@ -1,111 +0,0 @@
|
|||||||
commit e15d51510048927f172f1bf1f27ede65907d940d
|
|
||||||
Author: Leon Bottou <leon@bottou.org>
|
|
||||||
Date: Mon Apr 8 22:25:55 2019 -0400
|
|
||||||
|
|
||||||
bug 299 fixed
|
|
||||||
|
|
||||||
diff --git a/libdjvu/GContainer.h b/libdjvu/GContainer.h
|
|
||||||
index 96b067c..0140211 100644
|
|
||||||
--- a/libdjvu/GContainer.h
|
|
||||||
+++ b/libdjvu/GContainer.h
|
|
||||||
@@ -550,52 +550,61 @@ public:
|
|
||||||
template <class TYPE> void
|
|
||||||
GArrayTemplate<TYPE>::sort(int lo, int hi)
|
|
||||||
{
|
|
||||||
- if (hi <= lo)
|
|
||||||
- return;
|
|
||||||
- if (hi > hibound || lo<lobound)
|
|
||||||
- G_THROW( ERR_MSG("GContainer.illegal_subscript") );
|
|
||||||
TYPE *data = (TYPE*)(*this);
|
|
||||||
- // Test for insertion sort
|
|
||||||
- if (hi <= lo + 50)
|
|
||||||
+ while(true)
|
|
||||||
{
|
|
||||||
- for (int i=lo+1; i<=hi; i++)
|
|
||||||
+ if (hi <= lo)
|
|
||||||
+ return;
|
|
||||||
+ if (hi > hibound || lo<lobound)
|
|
||||||
+ G_THROW( ERR_MSG("GContainer.illegal_subscript") );
|
|
||||||
+ // Test for insertion sort
|
|
||||||
+ if (hi <= lo + 50)
|
|
||||||
{
|
|
||||||
- int j = i;
|
|
||||||
- TYPE tmp = data[i];
|
|
||||||
- while ((--j>=lo) && !(data[j]<=tmp))
|
|
||||||
- data[j+1] = data[j];
|
|
||||||
- data[j+1] = tmp;
|
|
||||||
+ for (int i=lo+1; i<=hi; i++)
|
|
||||||
+ {
|
|
||||||
+ int j = i;
|
|
||||||
+ TYPE tmp = data[i];
|
|
||||||
+ while ((--j>=lo) && !(data[j]<=tmp))
|
|
||||||
+ data[j+1] = data[j];
|
|
||||||
+ data[j+1] = tmp;
|
|
||||||
+ }
|
|
||||||
+ return;
|
|
||||||
}
|
|
||||||
- return;
|
|
||||||
- }
|
|
||||||
- // -- determine suitable quick-sort pivot
|
|
||||||
- TYPE tmp = data[lo];
|
|
||||||
- TYPE pivot = data[(lo+hi)/2];
|
|
||||||
- if (pivot <= tmp)
|
|
||||||
- { tmp = pivot; pivot=data[lo]; }
|
|
||||||
- if (data[hi] <= tmp)
|
|
||||||
- { pivot = tmp; }
|
|
||||||
- else if (data[hi] <= pivot)
|
|
||||||
- { pivot = data[hi]; }
|
|
||||||
- // -- partition set
|
|
||||||
- int h = hi;
|
|
||||||
- int l = lo;
|
|
||||||
- while (l < h)
|
|
||||||
- {
|
|
||||||
- while (! (pivot <= data[l])) l++;
|
|
||||||
- while (! (data[h] <= pivot)) h--;
|
|
||||||
- if (l < h)
|
|
||||||
+ // -- determine median-of-three pivot
|
|
||||||
+ TYPE tmp = data[lo];
|
|
||||||
+ TYPE pivot = data[(lo+hi)/2];
|
|
||||||
+ if (pivot <= tmp)
|
|
||||||
+ { tmp = pivot; pivot=data[lo]; }
|
|
||||||
+ if (data[hi] <= tmp)
|
|
||||||
+ { pivot = tmp; }
|
|
||||||
+ else if (data[hi] <= pivot)
|
|
||||||
+ { pivot = data[hi]; }
|
|
||||||
+ // -- partition set
|
|
||||||
+ int h = hi;
|
|
||||||
+ int l = lo;
|
|
||||||
+ while (l < h)
|
|
||||||
{
|
|
||||||
- tmp = data[l];
|
|
||||||
- data[l] = data[h];
|
|
||||||
- data[h] = tmp;
|
|
||||||
- l = l+1;
|
|
||||||
- h = h-1;
|
|
||||||
+ while (! (pivot <= data[l])) l++;
|
|
||||||
+ while (! (data[h] <= pivot)) h--;
|
|
||||||
+ if (l < h)
|
|
||||||
+ {
|
|
||||||
+ tmp = data[l];
|
|
||||||
+ data[l] = data[h];
|
|
||||||
+ data[h] = tmp;
|
|
||||||
+ l = l+1;
|
|
||||||
+ h = h-1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+ // -- recurse, small partition first
|
|
||||||
+ // tail-recursion elimination
|
|
||||||
+ if (h - lo <= hi - l) {
|
|
||||||
+ sort(lo,h);
|
|
||||||
+ lo = l; // sort(l,hi)
|
|
||||||
+ } else {
|
|
||||||
+ sort(l,hi);
|
|
||||||
+ hi = h; // sort(lo,h)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
- // -- recursively restart
|
|
||||||
- sort(lo, h);
|
|
||||||
- sort(l, hi);
|
|
||||||
}
|
|
||||||
|
|
||||||
template<class TYPE> inline TYPE&
|
|
@ -1,28 +0,0 @@
|
|||||||
commit 9658b01431cd7ff6344d7787f855179e73fe81a7
|
|
||||||
Author: Leon Bottou <leon@bottou.org>
|
|
||||||
Date: Mon Apr 8 22:55:38 2019 -0400
|
|
||||||
|
|
||||||
fix bug #298
|
|
||||||
|
|
||||||
diff --git a/libdjvu/GBitmap.h b/libdjvu/GBitmap.h
|
|
||||||
index e8e0c9b..ca89a19 100644
|
|
||||||
--- a/libdjvu/GBitmap.h
|
|
||||||
+++ b/libdjvu/GBitmap.h
|
|
||||||
@@ -566,7 +566,7 @@ GBitmap::operator[](int row)
|
|
||||||
{
|
|
||||||
if (!bytes)
|
|
||||||
uncompress();
|
|
||||||
- if (row<0 || row>=nrows) {
|
|
||||||
+ if (row<0 || row>=nrows || !bytes) {
|
|
||||||
#ifndef NDEBUG
|
|
||||||
if (zerosize < bytes_per_row + border)
|
|
||||||
G_THROW( ERR_MSG("GBitmap.zero_small") );
|
|
||||||
@@ -581,7 +581,7 @@ GBitmap::operator[](int row) const
|
|
||||||
{
|
|
||||||
if (!bytes)
|
|
||||||
((GBitmap*)this)->uncompress();
|
|
||||||
- if (row<0 || row>=nrows) {
|
|
||||||
+ if (row<0 || row>=nrows || !bytes) {
|
|
||||||
#ifndef NDEBUG
|
|
||||||
if (zerosize < bytes_per_row + border)
|
|
||||||
G_THROW( ERR_MSG("GBitmap.zero_small") );
|
|
@ -1,32 +0,0 @@
|
|||||||
commit c8bec6549c10ffaa2f2fbad8bbc629efdf0dd125
|
|
||||||
Author: Leon Bottou <leon@bottou.org>
|
|
||||||
Date: Thu Oct 17 22:20:31 2019 -0400
|
|
||||||
|
|
||||||
Fixed bug 309
|
|
||||||
|
|
||||||
diff --git a/libdjvu/IW44EncodeCodec.cpp b/libdjvu/IW44EncodeCodec.cpp
|
|
||||||
index 00752a0..f81eaeb 100644
|
|
||||||
--- a/libdjvu/IW44EncodeCodec.cpp
|
|
||||||
+++ b/libdjvu/IW44EncodeCodec.cpp
|
|
||||||
@@ -405,7 +405,7 @@ filter_fv(short *p, int w, int h, int rowsize, int scale)
|
|
||||||
int y = 0;
|
|
||||||
int s = scale*rowsize;
|
|
||||||
int s3 = s+s+s;
|
|
||||||
- h = ((h-1)/scale)+1;
|
|
||||||
+ h = (h>0) ? ((h-1)/scale)+1 : 0;
|
|
||||||
y += 1;
|
|
||||||
p += s;
|
|
||||||
while (y-3 < h)
|
|
||||||
diff --git a/tools/ddjvu.cpp b/tools/ddjvu.cpp
|
|
||||||
index 6d0df3b..7109952 100644
|
|
||||||
--- a/tools/ddjvu.cpp
|
|
||||||
+++ b/tools/ddjvu.cpp
|
|
||||||
@@ -279,7 +279,7 @@ render(ddjvu_page_t *page, int pageno)
|
|
||||||
prect.h = (ih * 100) / dpi;
|
|
||||||
}
|
|
||||||
/* Process aspect ratio */
|
|
||||||
- if (flag_aspect <= 0)
|
|
||||||
+ if (flag_aspect <= 0 && iw>0 && ih>0)
|
|
||||||
{
|
|
||||||
double dw = (double)iw / prect.w;
|
|
||||||
double dh = (double)ih / prect.h;
|
|
@ -8,11 +8,11 @@
|
|||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
pname = "djvulibre";
|
pname = "djvulibre";
|
||||||
version = "3.5.27";
|
version = "3.5.28";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz";
|
url = "mirror://sourceforge/djvu/${pname}-${version}.tar.gz";
|
||||||
sha256 = "0psh3zl9dj4n4r3lx25390nx34xz0bg0ql48zdskhq354ljni5p6";
|
sha256 = "1p1fiygq9ny8aimwc4vxwjc6k9ykgdsq1sq06slfbzalfvm0kl7w";
|
||||||
};
|
};
|
||||||
|
|
||||||
outputs = [ "bin" "dev" "out" ];
|
outputs = [ "bin" "dev" "out" ];
|
||||||
@ -24,21 +24,10 @@ stdenv.mkDerivation rec {
|
|||||||
libiconv
|
libiconv
|
||||||
];
|
];
|
||||||
|
|
||||||
patches = [
|
|
||||||
./CVE-2019-18804.patch
|
|
||||||
# This one is needed to make the following
|
|
||||||
# two CVE patches apply cleanly
|
|
||||||
./fix_hongfuzz_crash.patch
|
|
||||||
./CVE-2019-15142.patch
|
|
||||||
./CVE-2019-15143.patch
|
|
||||||
./CVE-2019-15144.patch
|
|
||||||
./CVE-2019-15145.patch
|
|
||||||
];
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "The big set of CLI tools to make/modify/optimize/show/export DJVU files";
|
description = "The big set of CLI tools to make/modify/optimize/show/export DJVU files";
|
||||||
homepage = "http://djvu.sourceforge.net";
|
homepage = "http://djvu.sourceforge.net";
|
||||||
license = licenses.gpl2;
|
license = licenses.gpl2Plus;
|
||||||
maintainers = with maintainers; [ Anton-Latukha ];
|
maintainers = with maintainers; [ Anton-Latukha ];
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
};
|
};
|
||||||
|
@ -1,51 +0,0 @@
|
|||||||
commit 89d71b01d606e57ecec2c2930c145bb20ba5bbe3
|
|
||||||
Author: Leon Bottou <leon@bottou.org>
|
|
||||||
Date: Fri Jul 13 08:46:22 2018 -0400
|
|
||||||
|
|
||||||
fix hongfuzz crash.
|
|
||||||
|
|
||||||
diff --git a/libdjvu/DjVmDir.cpp b/libdjvu/DjVmDir.cpp
|
|
||||||
index d322323..a6a39e0 100644
|
|
||||||
--- a/libdjvu/DjVmDir.cpp
|
|
||||||
+++ b/libdjvu/DjVmDir.cpp
|
|
||||||
@@ -299,7 +299,13 @@ DjVmDir::decode(const GP<ByteStream> &gstr)
|
|
||||||
memcpy((char*) strings+strings_size, buffer, length);
|
|
||||||
}
|
|
||||||
DEBUG_MSG("size of decompressed names block=" << strings.size() << "\n");
|
|
||||||
-
|
|
||||||
+ if (strings[strings.size()-1] != 0)
|
|
||||||
+ {
|
|
||||||
+ int strings_size=strings.size();
|
|
||||||
+ strings.resize(strings_size+1);
|
|
||||||
+ strings[strings_size] = 0;
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
// Copy names into the files
|
|
||||||
const char * ptr=strings;
|
|
||||||
for(pos=files_list;pos;++pos)
|
|
||||||
diff --git a/libdjvu/miniexp.cpp b/libdjvu/miniexp.cpp
|
|
||||||
index 6a5cd90..828addc 100644
|
|
||||||
--- a/libdjvu/miniexp.cpp
|
|
||||||
+++ b/libdjvu/miniexp.cpp
|
|
||||||
@@ -1065,7 +1065,7 @@ print_c_string(const char *s, char *d, int flags, size_t len)
|
|
||||||
c = (unsigned char)(*s++);
|
|
||||||
if (char_quoted(c, flags))
|
|
||||||
{
|
|
||||||
- char buffer[10];
|
|
||||||
+ char buffer[16]; /* 10+1 */
|
|
||||||
static const char *tr1 = "\"\\tnrbf";
|
|
||||||
static const char *tr2 = "\"\\\t\n\r\b\f";
|
|
||||||
buffer[0] = buffer[1] = 0;
|
|
||||||
diff --git a/tools/csepdjvu.cpp b/tools/csepdjvu.cpp
|
|
||||||
index 7ed13ad..fab9472 100644
|
|
||||||
--- a/tools/csepdjvu.cpp
|
|
||||||
+++ b/tools/csepdjvu.cpp
|
|
||||||
@@ -1834,7 +1834,7 @@ main(int argc, const char **argv)
|
|
||||||
ByteStream::create(GURL::Filename::UTF8(arg),"rb");
|
|
||||||
BufferByteStream ibs(*fbs);
|
|
||||||
do {
|
|
||||||
- char pagename[16];
|
|
||||||
+ char pagename[20];
|
|
||||||
sprintf(pagename, "p%04d.djvu", ++pageno);
|
|
||||||
if (opts.verbose > 1)
|
|
||||||
DjVuPrintErrorUTF8("%s","--------------------\n");
|
|
@ -2,13 +2,13 @@
|
|||||||
|
|
||||||
mkYarnPackage rec {
|
mkYarnPackage rec {
|
||||||
pname = "vieb";
|
pname = "vieb";
|
||||||
version = "3.4.0";
|
version = "4.5.1";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "jelmerro";
|
owner = "jelmerro";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = version;
|
rev = version;
|
||||||
sha256 = "0h5yzmvs9zhhpg9l7rrgwd4rqd9n00n2ifwqf05kpymzliy6xsnk";
|
sha256 = "sha256-7/oB2Inj+iMXzigqbCNJUY7dNrFBals2BOOl+Lp+ESs=";
|
||||||
};
|
};
|
||||||
|
|
||||||
packageJSON = ./package.json;
|
packageJSON = ./package.json;
|
||||||
@ -51,8 +51,8 @@ mkYarnPackage rec {
|
|||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://vieb.dev/";
|
homepage = "https://vieb.dev/";
|
||||||
description = "Vim Inspired Electron Browser";
|
description = "Vim Inspired Electron Browser";
|
||||||
maintainers = with maintainers; [ gebner ];
|
maintainers = with maintainers; [ gebner fortuneteller2k ];
|
||||||
platforms = platforms.unix;
|
platforms = platforms.unix;
|
||||||
license = licenses.gpl3;
|
license = licenses.gpl3Plus;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -1,11 +1,13 @@
|
|||||||
{
|
{
|
||||||
"name": "vieb",
|
"name": "vieb",
|
||||||
"productName": "Vieb",
|
"productName": "Vieb",
|
||||||
"version": "3.4.0",
|
"version": "4.5.1",
|
||||||
"description": "Vim Inspired Electron Browser",
|
"description": "Vim Inspired Electron Browser",
|
||||||
|
"bin": "app.js",
|
||||||
"main": "app/index.js",
|
"main": "app/index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "jest -u && eslint .",
|
"test": "jest --coverage --collectCoverageFrom 'app/**/*.js' -u && eslint app && echo 'All good :)'",
|
||||||
|
"dev": "electron app --datafolder ./ViebData/",
|
||||||
"start": "electron app",
|
"start": "electron app",
|
||||||
"build": "node build.js",
|
"build": "node build.js",
|
||||||
"buildall": "node build.js --linux --win --mac",
|
"buildall": "node build.js --linux --win --mac",
|
||||||
@ -16,24 +18,29 @@
|
|||||||
"repository": "https://github.com/Jelmerro/Vieb",
|
"repository": "https://github.com/Jelmerro/Vieb",
|
||||||
"homepage": "https://vieb.dev",
|
"homepage": "https://vieb.dev",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
|
"Vim",
|
||||||
"Electron",
|
"Electron",
|
||||||
"Browser",
|
"Browser",
|
||||||
"Internet"
|
"Internet"
|
||||||
],
|
],
|
||||||
"author": "Jelmer van Arnhem",
|
"author": "Jelmer van Arnhem",
|
||||||
"email": "Jelmerro@users.noreply.github.com",
|
"email": "Jelmerro@users.noreply.github.com",
|
||||||
"license": "GPL-3.0+",
|
"license": "GPL-3.0-or-later",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"archiver": "^5.2.0",
|
"archiver": "5.3.0",
|
||||||
"electron": "^11.2.1",
|
"electron": "12.0.5",
|
||||||
"electron-builder": "^22.10.4",
|
"electron-builder": "22.10.5",
|
||||||
"eslint": "^7.19.0",
|
"eslint": "7.25.0",
|
||||||
"jest": "^26.6.3"
|
"eslint-plugin-compat": "^3.9.0",
|
||||||
|
"jest": "26.6.3"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@cliqz/adblocker-electron": "^1.20.0",
|
"7zip-bin": "5.1.1",
|
||||||
"darkreader": "^4.9.27",
|
"@cliqz/adblocker-electron": "1.20.4",
|
||||||
"is-svg": "^4.2.1",
|
"is-svg": "4.3.1",
|
||||||
"rimraf": "^3.0.2"
|
"rimraf": "3.0.2"
|
||||||
}
|
},
|
||||||
|
"browserslist": [
|
||||||
|
"last 2 Chrome versions"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -164,9 +164,9 @@ in rec {
|
|||||||
});
|
});
|
||||||
|
|
||||||
terraform_0_15 = pluggable (generic {
|
terraform_0_15 = pluggable (generic {
|
||||||
version = "0.15.1";
|
version = "0.15.2";
|
||||||
sha256 = "02bqg05wsqld9xybvg7swvmympq5bggkw8vcq91z6vkpawm8z3kg";
|
sha256 = "1zsid3ri52cjhn4gr2vgnyf50zmqiz71fh18fkakql8vsqzb3zr0";
|
||||||
vendorSha256 = "1lnz6b2kjilidvs4flx9vj5j6dxliqdxni96fn2537nqaz4hc7l2";
|
vendorSha256 = "13ap1arn81lcxry08j42ck6lgvdcvdxgah6d40pmpkzkw9jcf55b";
|
||||||
patches = [ ./provider-path-0_15.patch ];
|
patches = [ ./provider-path-0_15.patch ];
|
||||||
passthru = { inherit plugins; };
|
passthru = { inherit plugins; };
|
||||||
});
|
});
|
||||||
|
@ -0,0 +1,41 @@
|
|||||||
|
{ lib
|
||||||
|
, mkDerivation
|
||||||
|
, fetchFromSourcehut
|
||||||
|
, cmake
|
||||||
|
, extra-cmake-modules
|
||||||
|
, pkg-config
|
||||||
|
, kirigami2
|
||||||
|
, libdeltachat
|
||||||
|
, qtmultimedia
|
||||||
|
}:
|
||||||
|
|
||||||
|
mkDerivation rec {
|
||||||
|
pname = "kdeltachat";
|
||||||
|
version = "unstable-2021-05-03";
|
||||||
|
|
||||||
|
src = fetchFromSourcehut {
|
||||||
|
owner = "~link2xt";
|
||||||
|
repo = "kdeltachat";
|
||||||
|
rev = "dd7455764074c0864234a6a25ab6f87e8d5c3121";
|
||||||
|
sha256 = "1vsy2jcisvf9mndxlwif3ghv1n2gz5ycr1qh72kgski38qan621v";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
extra-cmake-modules
|
||||||
|
pkg-config
|
||||||
|
];
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
kirigami2
|
||||||
|
libdeltachat
|
||||||
|
qtmultimedia
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Delta Chat client using Kirigami framework";
|
||||||
|
homepage = "https://git.sr.ht/~link2xt/kdeltachat";
|
||||||
|
license = licenses.gpl3Plus;
|
||||||
|
maintainers = with maintainers; [ dotlambda ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,95 +0,0 @@
|
|||||||
# is this configure option of interest?
|
|
||||||
#--enable-udev-rules-dir=PATH
|
|
||||||
# Where to install udev rules (/etc/udev/rules.d)
|
|
||||||
|
|
||||||
#TODO shared version?
|
|
||||||
|
|
||||||
|
|
||||||
# This is my config output.. Much TODO ?
|
|
||||||
#source path /tmp/nix-31998-1/kino-1.2.0/ffmpeg
|
|
||||||
#C compiler gcc
|
|
||||||
#make make
|
|
||||||
#.align is power-of-two no
|
|
||||||
#ARCH x86_64 (generic)
|
|
||||||
#build suffix -kino
|
|
||||||
#big-endian no
|
|
||||||
#MMX enabled yes
|
|
||||||
#CMOV enabled no
|
|
||||||
#CMOV is fast no
|
|
||||||
#gprof enabled no
|
|
||||||
#debug symbols yes
|
|
||||||
#strip symbols yes
|
|
||||||
#optimize yes
|
|
||||||
#static yes
|
|
||||||
#shared no
|
|
||||||
#postprocessing support no
|
|
||||||
#software scaler enabled yes
|
|
||||||
#video hooking no
|
|
||||||
#network support no
|
|
||||||
#threading support no
|
|
||||||
#SDL support no
|
|
||||||
#Sun medialib support no
|
|
||||||
#AVISynth enabled no
|
|
||||||
#liba52 support no
|
|
||||||
#liba52 dlopened no
|
|
||||||
#libdts support no
|
|
||||||
#libfaac enabled no
|
|
||||||
#libfaad enabled no
|
|
||||||
#faadbin enabled no
|
|
||||||
#libgsm enabled no
|
|
||||||
#libmp3lame enabled no
|
|
||||||
#libnut enabled no
|
|
||||||
#libogg enabled no
|
|
||||||
#libtheora enabled no
|
|
||||||
#libvorbis enabled no
|
|
||||||
#x264 enabled no
|
|
||||||
#XviD enabled no
|
|
||||||
#zlib enabled no
|
|
||||||
#AMR-NB float support no
|
|
||||||
#AMR-NB fixed support no
|
|
||||||
#AMR-WB float support no
|
|
||||||
#AMR-WB IF2 support no
|
|
||||||
|
|
||||||
{ lib, stdenv, fetchurl, gtk2, libglade, libxml2, libraw1394, libsamplerate, libdv
|
|
||||||
, pkg-config, perlPackages, libavc1394, libiec61883, libXv, gettext
|
|
||||||
, libX11, glib, cairo, intltool, ffmpeg, libv4l
|
|
||||||
}:
|
|
||||||
|
|
||||||
stdenv.mkDerivation {
|
|
||||||
name = "kino-1.3.4";
|
|
||||||
|
|
||||||
src = fetchurl {
|
|
||||||
url = "mirror://sourceforge/kino/kino-1.3.4.tar.gz";
|
|
||||||
sha256 = "020s05k0ma83rq2kfs8x474pqicaqp9spar81qc816ddfrnh8k8i";
|
|
||||||
};
|
|
||||||
|
|
||||||
buildInputs = [ gtk2 libglade libxml2 libraw1394 libsamplerate libdv
|
|
||||||
pkg-config libavc1394 libiec61883 intltool libXv gettext libX11 glib cairo ffmpeg libv4l ] # TODOoptional packages
|
|
||||||
++ (with perlPackages; [ perl XMLParser ]);
|
|
||||||
|
|
||||||
configureFlags = [ "--enable-local-ffmpeg=no" ];
|
|
||||||
|
|
||||||
hardeningDisable = [ "format" ];
|
|
||||||
|
|
||||||
NIX_LDFLAGS = "-lavcodec -lavutil";
|
|
||||||
|
|
||||||
patches = [ ./kino-1.3.4-v4l1.patch ./kino-1.3.4-libav-0.7.patch ./kino-1.3.4-libav-0.8.patch ]; #./kino-1.3.4-libavcodec-pkg-config.patch ];
|
|
||||||
|
|
||||||
postInstall = "
|
|
||||||
rpath=`patchelf --print-rpath \$out/bin/kino`;
|
|
||||||
for i in $buildInputs; do
|
|
||||||
echo adding \$i/lib
|
|
||||||
rpath=\$rpath\${rpath:+:}\$i/lib
|
|
||||||
done
|
|
||||||
for i in \$out/bin/*; do
|
|
||||||
patchelf --set-rpath \"\$rpath\" \"\$i\"
|
|
||||||
done
|
|
||||||
";
|
|
||||||
|
|
||||||
meta = {
|
|
||||||
description = "Non-linear DV editor for GNU/Linux";
|
|
||||||
homepage = "http://www.kinodv.org/";
|
|
||||||
license = lib.licenses.gpl2;
|
|
||||||
platforms = lib.platforms.linux;
|
|
||||||
};
|
|
||||||
}
|
|
@ -1,60 +0,0 @@
|
|||||||
--- kino-1.3.4.orig/src/frame.cc 2011-07-17 14:54:59.089481638 +0200
|
|
||||||
+++ kino-1.3.4/src/frame.cc 2011-07-17 15:09:23.199481714 +0200
|
|
||||||
@@ -1063,7 +1063,12 @@
|
|
||||||
AVPicture dest;
|
|
||||||
int got_picture;
|
|
||||||
|
|
||||||
- avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() );
|
|
||||||
+ AVPacket pkt;
|
|
||||||
+ av_init_packet(&pkt);
|
|
||||||
+ pkt.data = data;
|
|
||||||
+ pkt.size = GetFrameSize();
|
|
||||||
+
|
|
||||||
+ avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt );
|
|
||||||
if ( got_picture )
|
|
||||||
{
|
|
||||||
avpicture_fill( &dest, static_cast<uint8_t*>( rgb ), PIX_FMT_RGB24, GetWidth(), GetHeight() );
|
|
||||||
@@ -1123,7 +1128,12 @@
|
|
||||||
AVPicture output;
|
|
||||||
int got_picture;
|
|
||||||
|
|
||||||
- avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() );
|
|
||||||
+ AVPacket pkt;
|
|
||||||
+ av_init_packet(&pkt);
|
|
||||||
+ pkt.data = data;
|
|
||||||
+ pkt.size = GetFrameSize();
|
|
||||||
+
|
|
||||||
+ avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt );
|
|
||||||
if ( got_picture )
|
|
||||||
{
|
|
||||||
avpicture_fill( &output, static_cast<uint8_t*>( yuv ), PIX_FMT_YUV422, GetWidth(), GetHeight() );
|
|
||||||
@@ -1156,7 +1166,12 @@
|
|
||||||
AVFrame *frame = avcodec_alloc_frame();
|
|
||||||
int got_picture;
|
|
||||||
|
|
||||||
- avcodec_decode_video( libavcodec, frame, &got_picture, data, GetFrameSize() );
|
|
||||||
+ AVPacket pkt;
|
|
||||||
+ av_init_packet(&pkt);
|
|
||||||
+ pkt.data = data;
|
|
||||||
+ pkt.size = GetFrameSize();
|
|
||||||
+
|
|
||||||
+ avcodec_decode_video2( libavcodec, frame, &got_picture, &pkt );
|
|
||||||
|
|
||||||
int width = GetWidth(), height = GetHeight();
|
|
||||||
|
|
||||||
@@ -1319,12 +1334,12 @@
|
|
||||||
#if defined(HAVE_LIBAVCODEC)
|
|
||||||
if ( avformatEncoder == NULL )
|
|
||||||
{
|
|
||||||
- avformatEncoder = av_alloc_format_context();
|
|
||||||
+ avformatEncoder = avformat_alloc_context();
|
|
||||||
if ( avformatEncoder )
|
|
||||||
{
|
|
||||||
- avformatEncoder->oformat = guess_format( "dv", NULL, NULL );
|
|
||||||
+ avformatEncoder->oformat = av_guess_format( "dv", NULL, NULL );
|
|
||||||
AVStream* vst = av_new_stream( avformatEncoder, 0 );
|
|
||||||
- vst->codec->codec_type = CODEC_TYPE_VIDEO;
|
|
||||||
+ vst->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
|
||||||
vst->codec->codec_id = CODEC_ID_DVVIDEO;
|
|
||||||
vst->codec->bit_rate = 25000000;
|
|
||||||
vst->start_time = 0;
|
|
@ -1,57 +0,0 @@
|
|||||||
--- kino-1.3.4.orig/src/frame.cc 2012-05-14 19:55:42.153772418 -0700
|
|
||||||
+++ kino-1.3.4/src/frame.cc 2012-05-14 20:28:34.448838653 -0700
|
|
||||||
@@ -101,8 +101,9 @@
|
|
||||||
#if defined(HAVE_LIBAVCODEC)
|
|
||||||
pthread_mutex_lock( &avcodec_mutex );
|
|
||||||
av_register_all();
|
|
||||||
- libavcodec = avcodec_alloc_context();
|
|
||||||
- avcodec_open( libavcodec, avcodec_find_decoder( CODEC_ID_DVVIDEO ) );
|
|
||||||
+ libavcodec = avcodec_alloc_context3(NULL);
|
|
||||||
+ avcodec_open2( libavcodec,
|
|
||||||
+ avcodec_find_decoder( CODEC_ID_DVVIDEO ), NULL );
|
|
||||||
pthread_mutex_unlock( &avcodec_mutex );
|
|
||||||
data = ( unsigned char* ) av_mallocz( 144000 );
|
|
||||||
#if defined(HAVE_SWSCALE)
|
|
||||||
@@ -1338,7 +1339,7 @@
|
|
||||||
if ( avformatEncoder )
|
|
||||||
{
|
|
||||||
avformatEncoder->oformat = av_guess_format( "dv", NULL, NULL );
|
|
||||||
- AVStream* vst = av_new_stream( avformatEncoder, 0 );
|
|
||||||
+ AVStream* vst = avformat_new_stream( avformatEncoder, NULL );
|
|
||||||
vst->codec->codec_type = AVMEDIA_TYPE_VIDEO;
|
|
||||||
vst->codec->codec_id = CODEC_ID_DVVIDEO;
|
|
||||||
vst->codec->bit_rate = 25000000;
|
|
||||||
@@ -1364,12 +1365,10 @@
|
|
||||||
vst->sample_aspect_ratio = avcodecEncoder->sample_aspect_ratio;
|
|
||||||
#endif
|
|
||||||
avcodecEncoder->thread_count = 2;
|
|
||||||
- avcodec_thread_init( avcodecEncoder, avcodecEncoder->thread_count );
|
|
||||||
avcodecEncoder->time_base= isPAL ? ( AVRational ){ 1, 25 } : ( AVRational ){ 1001, 30000 };
|
|
||||||
avcodecEncoder->pix_fmt = isPAL ? PIX_FMT_YUV420P : PIX_FMT_YUV411P;
|
|
||||||
avcodecEncoder->flags |= CODEC_FLAG_INTERLACED_DCT;
|
|
||||||
- av_set_parameters( avformatEncoder, NULL );
|
|
||||||
- avcodec_open( avcodecEncoder, avcodec_find_encoder( CODEC_ID_DVVIDEO ) );
|
|
||||||
+ avcodec_open2( avcodecEncoder, avcodec_find_encoder( CODEC_ID_DVVIDEO ), NULL );
|
|
||||||
av_new_packet( &avpacketEncoder, 144000 );
|
|
||||||
tempImage = ( uint8_t* ) av_malloc(
|
|
||||||
avpicture_get_size( avcodecEncoder->pix_fmt, avcodecEncoder->width, avcodecEncoder->height ) );
|
|
||||||
@@ -1475,16 +1474,16 @@
|
|
||||||
|
|
||||||
// Encode
|
|
||||||
bytesInFrame = avcodec_encode_video( avcodecEncoder, avpacketEncoder.data, size, output );
|
|
||||||
- url_open_buf( &avformatEncoder->pb, data, bytesInFrame, URL_WRONLY );
|
|
||||||
+ avformatEncoder->pb = avio_alloc_context(data, bytesInFrame, 0, NULL, NULL, NULL, NULL);
|
|
||||||
avpacketEncoder.size = bytesInFrame;
|
|
||||||
if ( !isEncoderHeaderWritten )
|
|
||||||
{
|
|
||||||
- av_write_header( avformatEncoder );
|
|
||||||
+ avformat_write_header( avformatEncoder, NULL );
|
|
||||||
isEncoderHeaderWritten = true;
|
|
||||||
}
|
|
||||||
av_write_frame( avformatEncoder, &avpacketEncoder );
|
|
||||||
#if LIBAVFORMAT_VERSION_INT >= ((52<<16)+(0<<8)+0)
|
|
||||||
- url_close_buf( avformatEncoder->pb );
|
|
||||||
+ avio_close( avformatEncoder->pb );
|
|
||||||
#else
|
|
||||||
url_close_buf( &avformatEncoder->pb );
|
|
||||||
#endif
|
|
@ -1,11 +0,0 @@
|
|||||||
--- a/kino-1.3.4/configure.in 2009-09-08 02:35:23.000000000 -0400
|
|
||||||
+++ b/kino-1.3.4/configure.in 2014-01-27 14:53:01.366063037 -0500
|
|
||||||
@@ -221,7 +221,7 @@
|
|
||||||
if (test "x$avcodec_include" != x) || (test "x$avcodec_lib" != x) ; then
|
|
||||||
local_legacy_ffmpeg_test
|
|
||||||
else
|
|
||||||
- PKG_CHECK_MODULES(AVCODEC, libavformat,
|
|
||||||
+ PKG_CHECK_MODULES(AVCODEC, [libavcodec libavformat libavutil],
|
|
||||||
[
|
|
||||||
AC_DEFINE(HAVE_LIBAVCODEC, 1, [Enable FFMPEG libavcodec])
|
|
||||||
AC_SUBST(AVCODEC_LIBS)
|
|
@ -1,21 +0,0 @@
|
|||||||
no-1.3.3.orig/ffmpeg/libavdevice/v4l.c 2011-05-17 02:20:37.161004916 +0400
|
|
||||||
+++ kino-1.3.3.orig/ffmpeg/libavdevice/v4l.c 2011-05-17 02:21:57.302377529 +0400
|
|
||||||
@@ -26,7 +26,7 @@
|
|
||||||
#include <sys/mman.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
#define _LINUX_TIME_H 1
|
|
||||||
-#include <linux/videodev.h>
|
|
||||||
+#include <libv4l1-videodev.h>
|
|
||||||
#include <time.h>
|
|
||||||
|
|
||||||
typedef struct {
|
|
||||||
--- kino-1.3.3.orig/src/v4l.h 2011-05-17 02:20:38.896969666 +0400
|
|
||||||
+++ kino-1.3.3.orig/src/v4l.h 2011-05-17 02:21:39.922730395 +0400
|
|
||||||
@@ -40,7 +40,7 @@
|
|
||||||
|
|
||||||
#define _DEVICE_H_
|
|
||||||
#define _LINUX_TIME_H
|
|
||||||
-#include <linux/videodev.h>
|
|
||||||
+#include <libv4l1-videodev.h>
|
|
||||||
|
|
||||||
#include "displayer.h"
|
|
@ -2,7 +2,7 @@
|
|||||||
, haskell, haskellPackages, nodejs
|
, haskell, haskellPackages, nodejs
|
||||||
, fetchurl, fetchpatch, makeWrapper, writeScriptBin
|
, fetchurl, fetchpatch, makeWrapper, writeScriptBin
|
||||||
# Rust dependecies
|
# Rust dependecies
|
||||||
, rustPlatform, openssl, pkg-config, Security
|
, curl, rustPlatform, openssl, pkg-config, Security
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
|
fetchElmDeps = import ./fetchElmDeps.nix { inherit stdenv lib fetchurl; };
|
||||||
@ -102,7 +102,7 @@ let
|
|||||||
|
|
||||||
elmRustPackages = {
|
elmRustPackages = {
|
||||||
elm-json = import ./packages/elm-json.nix {
|
elm-json = import ./packages/elm-json.nix {
|
||||||
inherit lib rustPlatform fetchurl openssl stdenv pkg-config Security;
|
inherit curl lib rustPlatform fetchurl openssl stdenv pkg-config Security;
|
||||||
} // {
|
} // {
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
description = "Install, upgrade and uninstall Elm dependencies";
|
description = "Install, upgrade and uninstall Elm dependencies";
|
||||||
|
@ -1,20 +1,20 @@
|
|||||||
{ lib, rustPlatform, fetchurl, openssl, stdenv, pkg-config, Security }:
|
{ lib, curl, rustPlatform, fetchurl, openssl, stdenv, pkg-config, Security }:
|
||||||
rustPlatform.buildRustPackage rec {
|
rustPlatform.buildRustPackage rec {
|
||||||
pname = "elm-json";
|
pname = "elm-json";
|
||||||
version = "0.2.7";
|
version = "0.2.10";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "https://github.com/zwilias/elm-json/archive/v${version}.tar.gz";
|
url = "https://github.com/zwilias/elm-json/archive/v${version}.tar.gz";
|
||||||
sha256 = "sha256:1b9bhl7rb01ylqjbfd1ccm26lhk4hzwd383rbg89aj2jwjv0w4hs";
|
sha256 = "sha256:03azh7wvl60h6w7ffpvl49s7jr7bxpladcm4fzcasakg26i5a71x";
|
||||||
};
|
};
|
||||||
|
|
||||||
cargoPatches = [ ./elm-json.patch ];
|
cargoPatches = [ ./elm-json.patch ];
|
||||||
|
|
||||||
nativeBuildInputs = [ pkg-config ];
|
nativeBuildInputs = [ pkg-config ];
|
||||||
|
|
||||||
buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
|
buildInputs = [ curl openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
|
||||||
|
|
||||||
cargoSha256 = "0ylniriq073kpiykamkn9mxdaa6kyiza4pvf7gnfq2h1dvbqa6z7";
|
cargoSha256 = "sha256:01zasrqf1va58i52s3kwdkj1rnwy80gv00xi6npfshjirj3ix07f";
|
||||||
|
|
||||||
# Tests perform networking and therefore can't work in sandbox
|
# Tests perform networking and therefore can't work in sandbox
|
||||||
doCheck = false;
|
doCheck = false;
|
||||||
|
@ -1,48 +1,43 @@
|
|||||||
diff --git a/Cargo.lock b/Cargo.lock
|
diff --git a/Cargo.lock b/Cargo.lock
|
||||||
index f4d95f5..6830b3d 100644
|
index 5440d72..6e173fa 100644
|
||||||
--- a/Cargo.lock
|
--- a/Cargo.lock
|
||||||
+++ b/Cargo.lock
|
+++ b/Cargo.lock
|
||||||
@@ -625,14 +625,6 @@ name = "openssl-probe"
|
@@ -774,15 +774,6 @@ version = "0.1.2"
|
||||||
version = "0.1.2"
|
|
||||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
|
||||||
|
|
||||||
-[[package]]
|
-[[package]]
|
||||||
-name = "openssl-src"
|
-name = "openssl-src"
|
||||||
-version = "111.9.0+1.1.1g"
|
-version = "111.11.0+1.1.1h"
|
||||||
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
-source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||||
|
-checksum = "380fe324132bea01f45239fadfec9343adb044615f29930d039bec1ae7b9fa5b"
|
||||||
-dependencies = [
|
-dependencies = [
|
||||||
- "cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
|
- "cc",
|
||||||
-]
|
-]
|
||||||
-
|
-
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "openssl-sys"
|
name = "openssl-sys"
|
||||||
version = "0.9.56"
|
version = "0.9.58"
|
||||||
@@ -641,7 +633,6 @@ dependencies = [
|
@@ -792,7 +783,6 @@ dependencies = [
|
||||||
"autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
|
"autocfg",
|
||||||
"cc 1.0.54 (registry+https://github.com/rust-lang/crates.io-index)",
|
"cc",
|
||||||
"libc 0.2.70 (registry+https://github.com/rust-lang/crates.io-index)",
|
"libc",
|
||||||
- "openssl-src 111.9.0+1.1.1g (registry+https://github.com/rust-lang/crates.io-index)",
|
- "openssl-src",
|
||||||
"pkg-config 0.3.17 (registry+https://github.com/rust-lang/crates.io-index)",
|
"pkg-config",
|
||||||
"vcpkg 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)",
|
"vcpkg",
|
||||||
]
|
]
|
||||||
@@ -1162,7 +1153,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
|
|
||||||
"checksum object 0.19.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9cbca9424c482ee628fa549d9c812e2cd22f1180b9222c9200fdfa6eb31aecb2"
|
|
||||||
"checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d"
|
|
||||||
"checksum openssl-probe 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
|
|
||||||
-"checksum openssl-src 111.9.0+1.1.1g (registry+https://github.com/rust-lang/crates.io-index)" = "a2dbe10ddd1eb335aba3780eb2eaa13e1b7b441d2562fd962398740927f39ec4"
|
|
||||||
"checksum openssl-sys 0.9.56 (registry+https://github.com/rust-lang/crates.io-index)" = "f02309a7f127000ed50594f0b50ecc69e7c654e16d41b4e8156d1b3df8e0b52e"
|
|
||||||
"checksum petgraph 0.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "29c127eea4a29ec6c85d153c59dc1213f33ec74cead30fe4730aecc88cc1fd92"
|
|
||||||
"checksum pin-project 0.4.17 (registry+https://github.com/rust-lang/crates.io-index)" = "edc93aeee735e60ecb40cf740eb319ff23eab1c5748abfdb5c180e4ce49f7791"
|
|
||||||
diff --git a/Cargo.toml b/Cargo.toml
|
diff --git a/Cargo.toml b/Cargo.toml
|
||||||
index adfab25..37ae0c2 100644
|
index 4d319f2..6f4d0e5 100644
|
||||||
--- a/Cargo.toml
|
--- a/Cargo.toml
|
||||||
+++ b/Cargo.toml
|
+++ b/Cargo.toml
|
||||||
@@ -21,7 +21,7 @@ colored = "1.9"
|
@@ -21,8 +21,8 @@ colored = "2.0"
|
||||||
dialoguer = "0.6"
|
dialoguer = "0.6"
|
||||||
dirs = "2.0"
|
dirs = "3.0"
|
||||||
fs2 = "0.4"
|
fs2 = "0.4"
|
||||||
-isahc = { version = "0.9", features = ["static-ssl"] }
|
-isahc = { version = "0.9", features = ["static-ssl"] }
|
||||||
|
-curl = {version = "0.4", features = ["static-curl", "static-ssl", "force-system-lib-on-osx", "http2"]}
|
||||||
+isahc = "0.9"
|
+isahc = "0.9"
|
||||||
|
+curl = {version = "0.4", features = ["force-system-lib-on-osx", "http2"]}
|
||||||
|
ctrlc = "3.1"
|
||||||
|
console = "0.12"
|
||||||
|
|
||||||
[dev-dependencies]
|
|
||||||
assert_cmd = "0.11"
|
|
||||||
|
@ -4,4 +4,7 @@ callPackage ./generic.nix (rec {
|
|||||||
version = "${branch}.17";
|
version = "${branch}.17";
|
||||||
branch = "2.8";
|
branch = "2.8";
|
||||||
sha256 = "05bnhvs2f82aq95z1wd3wr42sljdfq4kiyzqwhpji983mndx14vl";
|
sha256 = "05bnhvs2f82aq95z1wd3wr42sljdfq4kiyzqwhpji983mndx14vl";
|
||||||
|
knownVulnerabilities = [
|
||||||
|
"CVE-2021-30123"
|
||||||
|
];
|
||||||
} // args)
|
} // args)
|
||||||
|
@ -17,7 +17,7 @@
|
|||||||
# Darwin frameworks
|
# Darwin frameworks
|
||||||
, Cocoa, darwinFrameworks ? [ Cocoa ]
|
, Cocoa, darwinFrameworks ? [ Cocoa ]
|
||||||
# Inherit generics
|
# Inherit generics
|
||||||
, branch, sha256, version, patches ? [], ...
|
, branch, sha256, version, patches ? [], knownVulnerabilities ? [], ...
|
||||||
}:
|
}:
|
||||||
|
|
||||||
/* Maintainer notes:
|
/* Maintainer notes:
|
||||||
@ -225,6 +225,6 @@ stdenv.mkDerivation rec {
|
|||||||
license = licenses.gpl3;
|
license = licenses.gpl3;
|
||||||
platforms = platforms.all;
|
platforms = platforms.all;
|
||||||
maintainers = with maintainers; [ codyopel ];
|
maintainers = with maintainers; [ codyopel ];
|
||||||
inherit branch;
|
inherit branch knownVulnerabilities;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
55
pkgs/development/libraries/libdeltachat/default.nix
Normal file
55
pkgs/development/libraries/libdeltachat/default.nix
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
{ lib
|
||||||
|
, stdenv
|
||||||
|
, fetchFromGitHub
|
||||||
|
, cmake
|
||||||
|
, openssl
|
||||||
|
, perl
|
||||||
|
, pkg-config
|
||||||
|
, rustPlatform
|
||||||
|
, sqlite
|
||||||
|
}:
|
||||||
|
|
||||||
|
stdenv.mkDerivation rec {
|
||||||
|
pname = "libdeltachat";
|
||||||
|
version = "1.54.0";
|
||||||
|
|
||||||
|
src = fetchFromGitHub {
|
||||||
|
owner = "deltachat";
|
||||||
|
repo = "deltachat-core-rust";
|
||||||
|
rev = version;
|
||||||
|
sha256 = "02hvsfv1yar8bdpkfrfiiicq9qqnfhp46v6qqph9ar6khz3f1kim";
|
||||||
|
};
|
||||||
|
|
||||||
|
cargoDeps = rustPlatform.fetchCargoTarball {
|
||||||
|
inherit src;
|
||||||
|
name = "${pname}-${version}";
|
||||||
|
sha256 = "1p5yrhczp9nfijbvkmkmx1rabk5k3c1ni4k1vc0mw4jgl26lslcm";
|
||||||
|
};
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
cmake
|
||||||
|
perl
|
||||||
|
pkg-config
|
||||||
|
] ++ (with rustPlatform; [
|
||||||
|
cargoSetupHook
|
||||||
|
rust.cargo
|
||||||
|
]);
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
openssl
|
||||||
|
sqlite
|
||||||
|
];
|
||||||
|
|
||||||
|
checkInputs = with rustPlatform; [
|
||||||
|
cargoCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Delta Chat Rust Core library";
|
||||||
|
homepage = "https://github.com/deltachat/deltachat-core-rust/";
|
||||||
|
changelog = "https://github.com/deltachat/deltachat-core-rust/blob/${version}/CHANGELOG.md";
|
||||||
|
license = licenses.mpl20;
|
||||||
|
platforms = platforms.linux;
|
||||||
|
maintainers = with maintainers; [ dotlambda ];
|
||||||
|
};
|
||||||
|
}
|
@ -15,7 +15,7 @@
|
|||||||
, enableProprietaryCodecs ? true
|
, enableProprietaryCodecs ? true
|
||||||
, gn
|
, gn
|
||||||
, cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin
|
, cups, darwin, openbsm, runCommand, xcbuild, writeScriptBin
|
||||||
, ffmpeg_3 ? null
|
, ffmpeg ? null
|
||||||
, lib, stdenv, fetchpatch
|
, lib, stdenv, fetchpatch
|
||||||
, version ? null
|
, version ? null
|
||||||
, qtCompatVersion
|
, qtCompatVersion
|
||||||
@ -140,9 +140,8 @@ qtModule {
|
|||||||
fi
|
fi
|
||||||
'';
|
'';
|
||||||
|
|
||||||
qmakeFlags = if stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64
|
qmakeFlags = [ "--" "-system-ffmpeg" ]
|
||||||
then [ "--" "-system-ffmpeg" ] ++ optional enableProprietaryCodecs "-proprietary-codecs"
|
++ optional enableProprietaryCodecs "-proprietary-codecs";
|
||||||
else optional enableProprietaryCodecs "-- -proprietary-codecs";
|
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
# Image formats
|
# Image formats
|
||||||
@ -158,8 +157,7 @@ qtModule {
|
|||||||
harfbuzz icu
|
harfbuzz icu
|
||||||
|
|
||||||
libevent
|
libevent
|
||||||
] ++ optionals (stdenv.hostPlatform.isAarch32 || stdenv.hostPlatform.isAarch64) [
|
ffmpeg
|
||||||
ffmpeg_3
|
|
||||||
] ++ optionals (!stdenv.isDarwin) [
|
] ++ optionals (!stdenv.isDarwin) [
|
||||||
dbus zlib minizip snappy nss protobuf jsoncpp
|
dbus zlib minizip snappy nss protobuf jsoncpp
|
||||||
|
|
||||||
|
59
pkgs/development/python-modules/deltachat/default.nix
Normal file
59
pkgs/development/python-modules/deltachat/default.nix
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
{ lib
|
||||||
|
, buildPythonPackage
|
||||||
|
, isPy27
|
||||||
|
, fetchpatch
|
||||||
|
, setuptools-scm
|
||||||
|
, libdeltachat
|
||||||
|
, cffi
|
||||||
|
, IMAPClient
|
||||||
|
, pluggy
|
||||||
|
, requests
|
||||||
|
, setuptools
|
||||||
|
, pytestCheckHook
|
||||||
|
}:
|
||||||
|
|
||||||
|
buildPythonPackage rec {
|
||||||
|
pname = "deltachat";
|
||||||
|
inherit (libdeltachat) version src;
|
||||||
|
sourceRoot = "${src.name}/python";
|
||||||
|
|
||||||
|
disabled = isPy27;
|
||||||
|
|
||||||
|
nativeBuildInputs = [
|
||||||
|
setuptools-scm
|
||||||
|
];
|
||||||
|
|
||||||
|
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||||
|
|
||||||
|
buildInputs = [
|
||||||
|
libdeltachat
|
||||||
|
];
|
||||||
|
|
||||||
|
propagatedBuildInputs = [
|
||||||
|
cffi
|
||||||
|
IMAPClient
|
||||||
|
pluggy
|
||||||
|
requests
|
||||||
|
setuptools
|
||||||
|
];
|
||||||
|
|
||||||
|
checkInputs = [
|
||||||
|
pytestCheckHook
|
||||||
|
];
|
||||||
|
|
||||||
|
pythonImportsCheck = [
|
||||||
|
"deltachat"
|
||||||
|
"deltachat.account"
|
||||||
|
"deltachat.contact"
|
||||||
|
"deltachat.chat"
|
||||||
|
"deltachat.message"
|
||||||
|
];
|
||||||
|
|
||||||
|
meta = with lib; {
|
||||||
|
description = "Python bindings for the Delta Chat Core library";
|
||||||
|
homepage = "https://github.com/deltachat/deltachat-core-rust/tree/master/python";
|
||||||
|
changelog = "https://github.com/deltachat/deltachat-core-rust/blob/${version}/python/CHANGELOG";
|
||||||
|
license = licenses.mpl20;
|
||||||
|
maintainers = with maintainers; [ dotlambda ];
|
||||||
|
};
|
||||||
|
}
|
@ -1,31 +1,31 @@
|
|||||||
{ lib, isPy3k, fetchFromGitHub, buildPythonPackage
|
{ lib, pythonOlder, fetchFromGitHub, buildPythonPackage
|
||||||
, six, enum34, pyasn1, cryptography, singledispatch ? null
|
, six, enum34, pyasn1, cryptography, singledispatch ? null
|
||||||
, fetchPypi, pytestCheckHook }:
|
, pytestCheckHook }:
|
||||||
|
|
||||||
buildPythonPackage rec {
|
buildPythonPackage rec {
|
||||||
pname = "pgpy";
|
pname = "pgpy";
|
||||||
version = "0.5.2";
|
version = "0.5.4";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "SecurityInnovation";
|
owner = "SecurityInnovation";
|
||||||
repo = "PGPy";
|
repo = "PGPy";
|
||||||
rev = version;
|
rev = "v${version}";
|
||||||
sha256 = "1v2b1dyq1sl48d2gw7vn4hv6sasd9ihpzzcq8yvxj9dgfak2y663";
|
sha256 = "03pch39y3hi4ici6y6lvz0j0zram8dw2wvnmq1zyjy3vyvm1ms4a";
|
||||||
};
|
};
|
||||||
|
|
||||||
propagatedBuildInputs = [
|
propagatedBuildInputs = [
|
||||||
six
|
six
|
||||||
pyasn1
|
pyasn1
|
||||||
cryptography
|
cryptography
|
||||||
|
] ++ lib.optionals (pythonOlder "3.4") [
|
||||||
singledispatch
|
singledispatch
|
||||||
] ++ lib.optional (!isPy3k) enum34;
|
enum34
|
||||||
|
];
|
||||||
|
|
||||||
checkInputs = [
|
checkInputs = [
|
||||||
pytestCheckHook
|
pytestCheckHook
|
||||||
];
|
];
|
||||||
|
|
||||||
disabledTests = [ "test_sign_string" "test_verify_string" ];
|
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
homepage = "https://github.com/SecurityInnovation/PGPy";
|
homepage = "https://github.com/SecurityInnovation/PGPy";
|
||||||
description = "Pretty Good Privacy for Python 2 and 3";
|
description = "Pretty Good Privacy for Python 2 and 3";
|
||||||
@ -35,6 +35,6 @@ buildPythonPackage rec {
|
|||||||
4880.
|
4880.
|
||||||
'';
|
'';
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
maintainers = with maintainers; [ eadwu ];
|
maintainers = with maintainers; [ eadwu dotlambda ];
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -8,6 +8,6 @@ let
|
|||||||
in
|
in
|
||||||
buildNodejs {
|
buildNodejs {
|
||||||
inherit enableNpm;
|
inherit enableNpm;
|
||||||
version = "16.0.0";
|
version = "16.1.0";
|
||||||
sha256 = "00mada0vvybizygwhzsq6gcz0m2k864lfiiqqlnw8gcc3q8r1js7";
|
sha256 = "0z0808mw674mshgbmhgngqfkrdix3b61f77xcdz7bwf1j87j7ad0";
|
||||||
}
|
}
|
||||||
|
@ -14,7 +14,7 @@
|
|||||||
, SDL2_gfx
|
, SDL2_gfx
|
||||||
, SDL2_mixer
|
, SDL2_mixer
|
||||||
, SDL2_net, SDL2_ttf
|
, SDL2_net, SDL2_ttf
|
||||||
, ffmpeg
|
, ffmpeg_3
|
||||||
, sqlite
|
, sqlite
|
||||||
, zlib
|
, zlib
|
||||||
, libX11
|
, libX11
|
||||||
@ -26,7 +26,7 @@ let
|
|||||||
sharedLibs = [
|
sharedLibs = [
|
||||||
pcre portaudio freetype
|
pcre portaudio freetype
|
||||||
SDL2 SDL2_image SDL2_gfx SDL2_mixer SDL2_net SDL2_ttf
|
SDL2 SDL2_image SDL2_gfx SDL2_mixer SDL2_net SDL2_ttf
|
||||||
sqlite lua zlib libX11 libGLU libGL ffmpeg
|
sqlite lua zlib libX11 libGLU libGL ffmpeg_3
|
||||||
];
|
];
|
||||||
|
|
||||||
in stdenv.mkDerivation rec {
|
in stdenv.mkDerivation rec {
|
||||||
|
@ -0,0 +1,130 @@
|
|||||||
|
From 99ae610f0ae3608a12c864caedf396f14e68327d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Maximilian Bosch <maximilian@mbosch.me>
|
||||||
|
Date: Fri, 19 Feb 2021 19:44:21 +0100
|
||||||
|
Subject: [PATCH] Implement read-only mode for ssids
|
||||||
|
|
||||||
|
With this change it's possible to define `network=`-sections in a second
|
||||||
|
config file specified via `-I` without having changes written to
|
||||||
|
`/etc/wpa_supplicant.conf`.
|
||||||
|
|
||||||
|
This is helpful on e.g. NixOS to allow both declarative (i.e. read-only)
|
||||||
|
and imperative (i.e. mutable) networks.
|
||||||
|
---
|
||||||
|
wpa_supplicant/config.h | 2 +-
|
||||||
|
wpa_supplicant/config_file.c | 5 +++--
|
||||||
|
wpa_supplicant/config_none.c | 2 +-
|
||||||
|
wpa_supplicant/config_ssid.h | 2 ++
|
||||||
|
wpa_supplicant/wpa_supplicant.c | 8 ++++----
|
||||||
|
5 files changed, 11 insertions(+), 8 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/wpa_supplicant/config.h b/wpa_supplicant/config.h
|
||||||
|
index 6a297ecfe..adaf4d398 100644
|
||||||
|
--- a/wpa_supplicant/config.h
|
||||||
|
+++ b/wpa_supplicant/config.h
|
||||||
|
@@ -1614,7 +1614,7 @@ const char * wpa_config_get_global_field_name(unsigned int i, int *no_var);
|
||||||
|
*
|
||||||
|
* Each configuration backend needs to implement this function.
|
||||||
|
*/
|
||||||
|
-struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp);
|
||||||
|
+struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp, int ro);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* wpa_config_write - Write or update configuration data
|
||||||
|
diff --git a/wpa_supplicant/config_file.c b/wpa_supplicant/config_file.c
|
||||||
|
index 77c326df5..d5ed051b9 100644
|
||||||
|
--- a/wpa_supplicant/config_file.c
|
||||||
|
+++ b/wpa_supplicant/config_file.c
|
||||||
|
@@ -373,7 +373,7 @@ static int wpa_config_process_blob(struct wpa_config *config, FILE *f,
|
||||||
|
#endif /* CONFIG_NO_CONFIG_BLOBS */
|
||||||
|
|
||||||
|
|
||||||
|
-struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp)
|
||||||
|
+struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp, int ro)
|
||||||
|
{
|
||||||
|
FILE *f;
|
||||||
|
char buf[512], *pos;
|
||||||
|
@@ -415,6 +415,7 @@ struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp)
|
||||||
|
while (wpa_config_get_line(buf, sizeof(buf), f, &line, &pos)) {
|
||||||
|
if (os_strcmp(pos, "network={") == 0) {
|
||||||
|
ssid = wpa_config_read_network(f, &line, id++);
|
||||||
|
+ ssid->ro = ro;
|
||||||
|
if (ssid == NULL) {
|
||||||
|
wpa_printf(MSG_ERROR, "Line %d: failed to "
|
||||||
|
"parse network block.", line);
|
||||||
|
@@ -1591,7 +1592,7 @@ int wpa_config_write(const char *name, struct wpa_config *config)
|
||||||
|
}
|
||||||
|
|
||||||
|
for (ssid = config->ssid; ssid; ssid = ssid->next) {
|
||||||
|
- if (ssid->key_mgmt == WPA_KEY_MGMT_WPS || ssid->temporary)
|
||||||
|
+ if (ssid->key_mgmt == WPA_KEY_MGMT_WPS || ssid->temporary || ssid->ro)
|
||||||
|
continue; /* do not save temporary networks */
|
||||||
|
if (wpa_key_mgmt_wpa_psk(ssid->key_mgmt) && !ssid->psk_set &&
|
||||||
|
!ssid->passphrase)
|
||||||
|
diff --git a/wpa_supplicant/config_none.c b/wpa_supplicant/config_none.c
|
||||||
|
index 2aac28fa3..02191b425 100644
|
||||||
|
--- a/wpa_supplicant/config_none.c
|
||||||
|
+++ b/wpa_supplicant/config_none.c
|
||||||
|
@@ -17,7 +17,7 @@
|
||||||
|
#include "base64.h"
|
||||||
|
|
||||||
|
|
||||||
|
-struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp)
|
||||||
|
+struct wpa_config * wpa_config_read(const char *name, struct wpa_config *cfgp, int ro)
|
||||||
|
{
|
||||||
|
struct wpa_config *config;
|
||||||
|
|
||||||
|
diff --git a/wpa_supplicant/config_ssid.h b/wpa_supplicant/config_ssid.h
|
||||||
|
index d5c5c00a9..fd80c079c 100644
|
||||||
|
--- a/wpa_supplicant/config_ssid.h
|
||||||
|
+++ b/wpa_supplicant/config_ssid.h
|
||||||
|
@@ -93,6 +93,8 @@ struct wpa_ssid {
|
||||||
|
*/
|
||||||
|
int id;
|
||||||
|
|
||||||
|
+ int ro;
|
||||||
|
+
|
||||||
|
/**
|
||||||
|
* priority - Priority group
|
||||||
|
*
|
||||||
|
diff --git a/wpa_supplicant/wpa_supplicant.c b/wpa_supplicant/wpa_supplicant.c
|
||||||
|
index 911d79d17..cb0cb99b1 100644
|
||||||
|
--- a/wpa_supplicant/wpa_supplicant.c
|
||||||
|
+++ b/wpa_supplicant/wpa_supplicant.c
|
||||||
|
@@ -1052,14 +1052,14 @@ int wpa_supplicant_reload_configuration(struct wpa_supplicant *wpa_s)
|
||||||
|
|
||||||
|
if (wpa_s->confname == NULL)
|
||||||
|
return -1;
|
||||||
|
- conf = wpa_config_read(wpa_s->confname, NULL);
|
||||||
|
+ conf = wpa_config_read(wpa_s->confname, NULL, 0);
|
||||||
|
if (conf == NULL) {
|
||||||
|
wpa_msg(wpa_s, MSG_ERROR, "Failed to parse the configuration "
|
||||||
|
"file '%s' - exiting", wpa_s->confname);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (wpa_s->confanother &&
|
||||||
|
- !wpa_config_read(wpa_s->confanother, conf)) {
|
||||||
|
+ !wpa_config_read(wpa_s->confanother, conf, 1)) {
|
||||||
|
wpa_msg(wpa_s, MSG_ERROR,
|
||||||
|
"Failed to parse the configuration file '%s' - exiting",
|
||||||
|
wpa_s->confanother);
|
||||||
|
@@ -5638,7 +5638,7 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s,
|
||||||
|
#else /* CONFIG_BACKEND_FILE */
|
||||||
|
wpa_s->confname = os_strdup(iface->confname);
|
||||||
|
#endif /* CONFIG_BACKEND_FILE */
|
||||||
|
- wpa_s->conf = wpa_config_read(wpa_s->confname, NULL);
|
||||||
|
+ wpa_s->conf = wpa_config_read(wpa_s->confname, NULL, 0);
|
||||||
|
if (wpa_s->conf == NULL) {
|
||||||
|
wpa_printf(MSG_ERROR, "Failed to read or parse "
|
||||||
|
"configuration '%s'.", wpa_s->confname);
|
||||||
|
@@ -5646,7 +5646,7 @@ static int wpa_supplicant_init_iface(struct wpa_supplicant *wpa_s,
|
||||||
|
}
|
||||||
|
wpa_s->confanother = os_rel2abs_path(iface->confanother);
|
||||||
|
if (wpa_s->confanother &&
|
||||||
|
- !wpa_config_read(wpa_s->confanother, wpa_s->conf)) {
|
||||||
|
+ !wpa_config_read(wpa_s->confanother, wpa_s->conf, 1)) {
|
||||||
|
wpa_printf(MSG_ERROR,
|
||||||
|
"Failed to read or parse configuration '%s'.",
|
||||||
|
wpa_s->confanother);
|
||||||
|
--
|
||||||
|
2.29.2
|
||||||
|
|
@ -1,5 +1,7 @@
|
|||||||
{ lib, stdenv, fetchurl, fetchpatch, openssl, pkg-config, libnl
|
{ lib, stdenv, fetchurl, fetchpatch, openssl, pkg-config, libnl
|
||||||
, dbus, readline ? null, pcsclite ? null
|
, dbus, readline ? null, pcsclite ? null
|
||||||
|
|
||||||
|
, readOnlyModeSSIDs ? false
|
||||||
}:
|
}:
|
||||||
|
|
||||||
with lib;
|
with lib;
|
||||||
@ -43,6 +45,9 @@ stdenv.mkDerivation rec {
|
|||||||
url = "https://w1.fi/cgit/hostap/patch/?id=a0541334a6394f8237a4393b7372693cd7e96f15";
|
url = "https://w1.fi/cgit/hostap/patch/?id=a0541334a6394f8237a4393b7372693cd7e96f15";
|
||||||
sha256 = "1gbhlz41x1ar1hppnb76pqxj6vimiypy7c4kq6h658637s4am3xg";
|
sha256 = "1gbhlz41x1ar1hppnb76pqxj6vimiypy7c4kq6h658637s4am3xg";
|
||||||
})
|
})
|
||||||
|
] ++ lib.optionals readOnlyModeSSIDs [
|
||||||
|
# Allow read-only networks
|
||||||
|
./0001-Implement-read-only-mode-for-ssids.patch
|
||||||
];
|
];
|
||||||
|
|
||||||
# TODO: Patch epoll so that the dbus actually responds
|
# TODO: Patch epoll so that the dbus actually responds
|
||||||
@ -134,7 +139,7 @@ stdenv.mkDerivation rec {
|
|||||||
homepage = "https://w1.fi/wpa_supplicant/";
|
homepage = "https://w1.fi/wpa_supplicant/";
|
||||||
description = "A tool for connecting to WPA and WPA2-protected wireless networks";
|
description = "A tool for connecting to WPA and WPA2-protected wireless networks";
|
||||||
license = licenses.bsd3;
|
license = licenses.bsd3;
|
||||||
maintainers = with maintainers; [ marcweber ];
|
maintainers = with maintainers; [ marcweber ma27 ];
|
||||||
platforms = platforms.linux;
|
platforms = platforms.linux;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -17,10 +17,15 @@ stdenv.mkDerivation rec {
|
|||||||
|
|
||||||
patches = [
|
patches = [
|
||||||
(fetchpatch {
|
(fetchpatch {
|
||||||
|
name = "fix-build-with-libav-10.patch";
|
||||||
|
url = "https://bitbucket.org/acoustid/acoustid-fingerprinter/commits/2c778334a9fc2f0ccf9b1d7635c116bce6509748/raw";
|
||||||
|
sha256 = "1smyp3x5n6jwxpgw60xsijq2fn6g1gl759h1lm5agaxhcyyqn0i0";
|
||||||
|
})
|
||||||
|
(fetchpatch {
|
||||||
|
name = "fix-build-failure-on-gcc-6.patch";
|
||||||
url = "https://bitbucket.org/acoustid/acoustid-fingerprinter/commits/632e87969c3a5562a5d4842b03613267ba6236b2/raw";
|
url = "https://bitbucket.org/acoustid/acoustid-fingerprinter/commits/632e87969c3a5562a5d4842b03613267ba6236b2/raw";
|
||||||
sha256 = "15hm9knrpqn3yqrwyjz4zh2aypwbcycd0c5svrsy1fb2h2rh05jk";
|
sha256 = "15hm9knrpqn3yqrwyjz4zh2aypwbcycd0c5svrsy1fb2h2rh05jk";
|
||||||
})
|
})
|
||||||
./ffmpeg.patch
|
|
||||||
];
|
];
|
||||||
|
|
||||||
meta = with lib; {
|
meta = with lib; {
|
||||||
|
@ -1,26 +0,0 @@
|
|||||||
diff --git a/decoder.h b/decoder.h
|
|
||||||
index 028f58f..4428ac1 100644
|
|
||||||
--- a/decoder.h
|
|
||||||
+++ b/decoder.h
|
|
||||||
@@ -39,6 +39,8 @@ extern "C" {
|
|
||||||
#define AV_SAMPLE_FMT_S16 SAMPLE_FMT_S16
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
|
|
||||||
+
|
|
||||||
class Decoder
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
diff --git a/ffmpeg/audioconvert.h b/ffmpeg/audioconvert.h
|
|
||||||
index 2b28e2e..a699986 100644
|
|
||||||
--- a/ffmpeg/audioconvert.h
|
|
||||||
+++ b/ffmpeg/audioconvert.h
|
|
||||||
@@ -79,7 +79,7 @@ int avcodec_channel_layout_num_channels(int64_t channel_layout);
|
|
||||||
* @param fmt_name Format name, or NULL if unknown
|
|
||||||
* @return Channel layout mask
|
|
||||||
*/
|
|
||||||
-uint64_t avcodec_guess_channel_layout(int nb_channels, enum CodecID codec_id, const char *fmt_name);
|
|
||||||
+uint64_t avcodec_guess_channel_layout(int nb_channels, enum AVCodecID codec_id, const char *fmt_name);
|
|
||||||
|
|
||||||
struct AVAudioConvert;
|
|
||||||
typedef struct AVAudioConvert AVAudioConvert;
|
|
@ -5,13 +5,13 @@
|
|||||||
|
|
||||||
buildGoModule rec {
|
buildGoModule rec {
|
||||||
pname = "gitleaks";
|
pname = "gitleaks";
|
||||||
version = "7.4.1";
|
version = "7.5.0";
|
||||||
|
|
||||||
src = fetchFromGitHub {
|
src = fetchFromGitHub {
|
||||||
owner = "zricethezav";
|
owner = "zricethezav";
|
||||||
repo = pname;
|
repo = pname;
|
||||||
rev = "v${version}";
|
rev = "v${version}";
|
||||||
sha256 = "sha256-GoHntsyxrMzLHlyKC3JxCkLoquIjOtidcG7hTNTYGuI=";
|
sha256 = "sha256-s7EOCoGciGT5+Fose9BffsHHE/SsSMmNoWGmeAv6Agk=";
|
||||||
};
|
};
|
||||||
|
|
||||||
vendorSha256 = "sha256-Cc4DJPpOMHxDcH22S7znYo7QHNRXv8jOJhznu09kaE4=";
|
vendorSha256 = "sha256-Cc4DJPpOMHxDcH22S7znYo7QHNRXv8jOJhznu09kaE4=";
|
||||||
|
@ -354,6 +354,7 @@ mapAliases ({
|
|||||||
kinetic-cpp-client = throw "kinetic-cpp-client has been removed from nixpkgs, as it's abandoned."; # 2020-04-28
|
kinetic-cpp-client = throw "kinetic-cpp-client has been removed from nixpkgs, as it's abandoned."; # 2020-04-28
|
||||||
kicad-with-packages3d = kicad; # added 2019-11-25
|
kicad-with-packages3d = kicad; # added 2019-11-25
|
||||||
kindlegen = throw "kindlegen has been removed from nixpkgs, as it's abandoned and no longer available for download."; # 2021-03-09
|
kindlegen = throw "kindlegen has been removed from nixpkgs, as it's abandoned and no longer available for download."; # 2021-03-09
|
||||||
|
kino = throw "kino has been removed because it was broken and abandoned"; # added 2021-04-25
|
||||||
krename-qt5 = krename; # added 2017-02-18
|
krename-qt5 = krename; # added 2017-02-18
|
||||||
kerberos = libkrb5; # moved from top-level 2021-03-14
|
kerberos = libkrb5; # moved from top-level 2021-03-14
|
||||||
keymon = throw "keymon has been removed from nixpkgs, as it's abandoned and archived."; # 2019-12-10
|
keymon = throw "keymon has been removed from nixpkgs, as it's abandoned and archived."; # 2019-12-10
|
||||||
|
@ -693,9 +693,7 @@ in
|
|||||||
|
|
||||||
acousticbrainz-client = callPackage ../tools/audio/acousticbrainz-client { };
|
acousticbrainz-client = callPackage ../tools/audio/acousticbrainz-client { };
|
||||||
|
|
||||||
acoustidFingerprinter = callPackage ../tools/audio/acoustid-fingerprinter {
|
acoustidFingerprinter = callPackage ../tools/audio/acoustid-fingerprinter { };
|
||||||
ffmpeg = ffmpeg_2;
|
|
||||||
};
|
|
||||||
|
|
||||||
alsaequal = callPackage ../tools/audio/alsaequal { };
|
alsaequal = callPackage ../tools/audio/alsaequal { };
|
||||||
|
|
||||||
@ -15554,6 +15552,8 @@ in
|
|||||||
|
|
||||||
libdeflate = callPackage ../development/libraries/libdeflate { };
|
libdeflate = callPackage ../development/libraries/libdeflate { };
|
||||||
|
|
||||||
|
libdeltachat = callPackage ../development/libraries/libdeltachat { };
|
||||||
|
|
||||||
libdevil = callPackage ../development/libraries/libdevil {
|
libdevil = callPackage ../development/libraries/libdevil {
|
||||||
inherit (darwin.apple_sdk.frameworks) OpenGL;
|
inherit (darwin.apple_sdk.frameworks) OpenGL;
|
||||||
};
|
};
|
||||||
@ -21090,6 +21090,10 @@ in
|
|||||||
|
|
||||||
wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant { };
|
wpa_supplicant = callPackage ../os-specific/linux/wpa_supplicant { };
|
||||||
|
|
||||||
|
wpa_supplicant_ro_ssids = wpa_supplicant.override {
|
||||||
|
readOnlyModeSSIDs = true;
|
||||||
|
};
|
||||||
|
|
||||||
wpa_supplicant_gui = libsForQt5.callPackage ../os-specific/linux/wpa_supplicant/gui.nix { };
|
wpa_supplicant_gui = libsForQt5.callPackage ../os-specific/linux/wpa_supplicant/gui.nix { };
|
||||||
|
|
||||||
xf86_input_cmt = callPackage ../os-specific/linux/xf86-input-cmt { };
|
xf86_input_cmt = callPackage ../os-specific/linux/xf86-input-cmt { };
|
||||||
@ -22508,7 +22512,6 @@ in
|
|||||||
cmus = callPackage ../applications/audio/cmus {
|
cmus = callPackage ../applications/audio/cmus {
|
||||||
inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio;
|
inherit (darwin.apple_sdk.frameworks) AudioUnit CoreAudio;
|
||||||
libjack = libjack2;
|
libjack = libjack2;
|
||||||
ffmpeg = ffmpeg_2;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
cmusfm = callPackage ../applications/audio/cmusfm { };
|
cmusfm = callPackage ../applications/audio/cmusfm { };
|
||||||
@ -24179,6 +24182,8 @@ in
|
|||||||
|
|
||||||
kbibtex = libsForQt5.callPackage ../applications/office/kbibtex { };
|
kbibtex = libsForQt5.callPackage ../applications/office/kbibtex { };
|
||||||
|
|
||||||
|
kdeltachat = libsForQt5.callPackage ../applications/networking/instant-messengers/kdeltachat { };
|
||||||
|
|
||||||
kdevelop-pg-qt = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { };
|
kdevelop-pg-qt = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { };
|
||||||
|
|
||||||
kdevelop-unwrapped = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop.nix {
|
kdevelop-unwrapped = libsForQt5.callPackage ../applications/editors/kdevelop5/kdevelop.nix {
|
||||||
@ -24222,11 +24227,6 @@ in
|
|||||||
|
|
||||||
kile = libsForQt5.callPackage ../applications/editors/kile { };
|
kile = libsForQt5.callPackage ../applications/editors/kile { };
|
||||||
|
|
||||||
kino = callPackage ../applications/video/kino {
|
|
||||||
inherit (gnome2) libglade;
|
|
||||||
ffmpeg = ffmpeg_2;
|
|
||||||
};
|
|
||||||
|
|
||||||
kitsas = libsForQt5.callPackage ../applications/office/kitsas { };
|
kitsas = libsForQt5.callPackage ../applications/office/kitsas { };
|
||||||
|
|
||||||
kiwix = libsForQt5.callPackage ../applications/misc/kiwix { };
|
kiwix = libsForQt5.callPackage ../applications/misc/kiwix { };
|
||||||
@ -25304,7 +25304,7 @@ in
|
|||||||
owamp = callPackage ../applications/networking/owamp { };
|
owamp = callPackage ../applications/networking/owamp { };
|
||||||
|
|
||||||
vieb = callPackage ../applications/networking/browsers/vieb {
|
vieb = callPackage ../applications/networking/browsers/vieb {
|
||||||
electron = electron_11;
|
electron = electron_12;
|
||||||
};
|
};
|
||||||
|
|
||||||
vivaldi = callPackage ../applications/networking/browsers/vivaldi {};
|
vivaldi = callPackage ../applications/networking/browsers/vivaldi {};
|
||||||
@ -27598,7 +27598,7 @@ in
|
|||||||
|
|
||||||
airstrike = callPackage ../games/airstrike { };
|
airstrike = callPackage ../games/airstrike { };
|
||||||
|
|
||||||
alephone = callPackage ../games/alephone { ffmpeg = ffmpeg_2; };
|
alephone = callPackage ../games/alephone { };
|
||||||
alephone-durandal = callPackage ../games/alephone/durandal { };
|
alephone-durandal = callPackage ../games/alephone/durandal { };
|
||||||
alephone-eternal = callPackage ../games/alephone/eternal { };
|
alephone-eternal = callPackage ../games/alephone/eternal { };
|
||||||
alephone-evil = callPackage ../games/alephone/evil { };
|
alephone-evil = callPackage ../games/alephone/evil { };
|
||||||
@ -28464,9 +28464,7 @@ in
|
|||||||
|
|
||||||
ultrastar-manager = libsForQt5.callPackage ../tools/misc/ultrastar-manager { };
|
ultrastar-manager = libsForQt5.callPackage ../tools/misc/ultrastar-manager { };
|
||||||
|
|
||||||
ultrastardx = callPackage ../games/ultrastardx {
|
ultrastardx = callPackage ../games/ultrastardx { };
|
||||||
ffmpeg = ffmpeg_2;
|
|
||||||
};
|
|
||||||
|
|
||||||
unciv = callPackage ../games/unciv { };
|
unciv = callPackage ../games/unciv { };
|
||||||
|
|
||||||
|
@ -1751,6 +1751,8 @@ in {
|
|||||||
|
|
||||||
delegator-py = callPackage ../development/python-modules/delegator-py { };
|
delegator-py = callPackage ../development/python-modules/delegator-py { };
|
||||||
|
|
||||||
|
deltachat = callPackage ../development/python-modules/deltachat { };
|
||||||
|
|
||||||
deluge-client = callPackage ../development/python-modules/deluge-client { };
|
deluge-client = callPackage ../development/python-modules/deluge-client { };
|
||||||
|
|
||||||
demjson = callPackage ../development/python-modules/demjson { };
|
demjson = callPackage ../development/python-modules/demjson { };
|
||||||
|
Loading…
x
Reference in New Issue
Block a user