Merge staging-next into staging
This commit is contained in:
commit
233e4a0c95
|
@ -6981,6 +6981,12 @@
|
|||
githubId = 22085373;
|
||||
name = "Luis Hebendanz";
|
||||
};
|
||||
lunarequest = {
|
||||
email = "nullarequest@vivlaid.net";
|
||||
github = "Lunarequest";
|
||||
githubId = 30698906;
|
||||
name = "Advaith Madhukar"; #this is my legal name, I prefer Luna; please keep that in mind!
|
||||
};
|
||||
lionello = {
|
||||
email = "lio@lunesu.com";
|
||||
github = "lionello";
|
||||
|
|
|
@ -81,29 +81,71 @@ def make_request(url: str) -> urllib.request.Request:
|
|||
headers["Authorization"] = f"token {token}"
|
||||
return urllib.request.Request(url, headers=headers)
|
||||
|
||||
@dataclass
|
||||
class PluginDesc:
|
||||
owner: str
|
||||
repo: str
|
||||
branch: str
|
||||
alias: Optional[str]
|
||||
|
||||
|
||||
class Repo:
|
||||
def __init__(
|
||||
self, owner: str, name: str, branch: str, alias: Optional[str]
|
||||
self, uri: str, branch: str, alias: Optional[str]
|
||||
) -> None:
|
||||
self.owner = owner
|
||||
self.name = name
|
||||
self.uri = uri
|
||||
'''Url to the repo'''
|
||||
self.branch = branch
|
||||
self.alias = alias
|
||||
self.redirect: Dict[str, str] = {}
|
||||
|
||||
def url(self, path: str) -> str:
|
||||
return urljoin(f"https://github.com/{self.owner}/{self.name}/", path)
|
||||
@property
|
||||
def name(self):
|
||||
return self.uri.split('/')[-1]
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"Repo({self.owner}, {self.name})"
|
||||
return f"Repo({self.name}, {self.uri})"
|
||||
|
||||
@retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
|
||||
def has_submodules(self) -> bool:
|
||||
return True
|
||||
|
||||
@retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
|
||||
def latest_commit(self) -> Tuple[str, datetime]:
|
||||
loaded = self._prefetch(None)
|
||||
updated = datetime.strptime(loaded['date'], "%Y-%m-%dT%H:%M:%S%z")
|
||||
|
||||
return loaded['rev'], updated
|
||||
|
||||
def _prefetch(self, ref: Optional[str]):
|
||||
cmd = ["nix-prefetch-git", "--quiet", "--fetch-submodules", self.uri]
|
||||
if ref is not None:
|
||||
cmd.append(ref)
|
||||
log.debug(cmd)
|
||||
data = subprocess.check_output(cmd)
|
||||
loaded = json.loads(data)
|
||||
return loaded
|
||||
|
||||
def prefetch(self, ref: Optional[str]) -> str:
|
||||
loaded = self._prefetch(ref)
|
||||
return loaded["sha256"]
|
||||
|
||||
def as_nix(self, plugin: "Plugin") -> str:
|
||||
return f'''fetchgit {{
|
||||
url = "{self.uri}";
|
||||
rev = "{plugin.commit}";
|
||||
sha256 = "{plugin.sha256}";
|
||||
}}'''
|
||||
|
||||
|
||||
class RepoGitHub(Repo):
|
||||
def __init__(
|
||||
self, owner: str, repo: str, branch: str, alias: Optional[str]
|
||||
) -> None:
|
||||
self.owner = owner
|
||||
self.repo = repo
|
||||
'''Url to the repo'''
|
||||
super().__init__(self.url(""), branch, alias)
|
||||
log.debug("Instantiating github repo %s/%s", self.owner, self.repo)
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
return self.repo
|
||||
|
||||
def url(self, path: str) -> str:
|
||||
return urljoin(f"https://github.com/{self.owner}/{self.name}/", path)
|
||||
|
||||
@retry(urllib.error.URLError, tries=4, delay=3, backoff=2)
|
||||
def has_submodules(self) -> bool:
|
||||
|
@ -122,7 +164,7 @@ class Repo:
|
|||
commit_url = self.url(f"commits/{self.branch}.atom")
|
||||
commit_req = make_request(commit_url)
|
||||
with urllib.request.urlopen(commit_req, timeout=10) as req:
|
||||
self.check_for_redirect(commit_url, req)
|
||||
self._check_for_redirect(commit_url, req)
|
||||
xml = req.read()
|
||||
root = ET.fromstring(xml)
|
||||
latest_entry = root.find(ATOM_ENTRY)
|
||||
|
@ -137,7 +179,7 @@ class Repo:
|
|||
updated = datetime.strptime(updated_tag.text, "%Y-%m-%dT%H:%M:%SZ")
|
||||
return Path(str(url.path)).name, updated
|
||||
|
||||
def check_for_redirect(self, url: str, req: http.client.HTTPResponse):
|
||||
def _check_for_redirect(self, url: str, req: http.client.HTTPResponse):
|
||||
response_url = req.geturl()
|
||||
if url != response_url:
|
||||
new_owner, new_name = (
|
||||
|
@ -150,11 +192,13 @@ class Repo:
|
|||
new_plugin = plugin_line.format(owner=new_owner, name=new_name)
|
||||
self.redirect[old_plugin] = new_plugin
|
||||
|
||||
def prefetch_git(self, ref: str) -> str:
|
||||
data = subprocess.check_output(
|
||||
["nix-prefetch-git", "--fetch-submodules", self.url(""), ref]
|
||||
)
|
||||
return json.loads(data)["sha256"]
|
||||
|
||||
def prefetch(self, commit: str) -> str:
|
||||
if self.has_submodules():
|
||||
sha256 = super().prefetch(commit)
|
||||
else:
|
||||
sha256 = self.prefetch_github(commit)
|
||||
return sha256
|
||||
|
||||
def prefetch_github(self, ref: str) -> str:
|
||||
data = subprocess.check_output(
|
||||
|
@ -162,6 +206,33 @@ class Repo:
|
|||
)
|
||||
return data.strip().decode("utf-8")
|
||||
|
||||
def as_nix(self, plugin: "Plugin") -> str:
|
||||
if plugin.has_submodules:
|
||||
submodule_attr = "\n fetchSubmodules = true;"
|
||||
else:
|
||||
submodule_attr = ""
|
||||
|
||||
return f'''fetchFromGitHub {{
|
||||
owner = "{self.owner}";
|
||||
repo = "{self.repo}";
|
||||
rev = "{plugin.commit}";
|
||||
sha256 = "{plugin.sha256}";{submodule_attr}
|
||||
}}'''
|
||||
|
||||
|
||||
@dataclass
|
||||
class PluginDesc:
|
||||
repo: Repo
|
||||
branch: str
|
||||
alias: Optional[str]
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
if self.alias is None:
|
||||
return self.repo.name
|
||||
else:
|
||||
return self.alias
|
||||
|
||||
|
||||
class Plugin:
|
||||
def __init__(
|
||||
|
@ -193,6 +264,7 @@ class Plugin:
|
|||
return copy
|
||||
|
||||
|
||||
|
||||
class Editor:
|
||||
"""The configuration of the update script."""
|
||||
|
||||
|
@ -241,9 +313,9 @@ class Editor:
|
|||
|
||||
def create_parser(self):
|
||||
parser = argparse.ArgumentParser(
|
||||
description=(
|
||||
f"Updates nix derivations for {self.name} plugins"
|
||||
f"By default from {self.default_in} to {self.default_out}"
|
||||
description=(f"""
|
||||
Updates nix derivations for {self.name} plugins.\n
|
||||
By default from {self.default_in} to {self.default_out}"""
|
||||
)
|
||||
)
|
||||
parser.add_argument(
|
||||
|
@ -273,7 +345,7 @@ class Editor:
|
|||
dest="proc",
|
||||
type=int,
|
||||
default=30,
|
||||
help="Number of concurrent processes to spawn.",
|
||||
help="Number of concurrent processes to spawn. Export GITHUB_API_TOKEN allows higher values.",
|
||||
)
|
||||
parser.add_argument(
|
||||
"--no-commit", "-n", action="store_true", default=False,
|
||||
|
@ -320,26 +392,24 @@ def prefetch_plugin(
|
|||
p: PluginDesc,
|
||||
cache: "Optional[Cache]" = None,
|
||||
) -> Tuple[Plugin, Dict[str, str]]:
|
||||
user, repo_name, branch, alias = p.owner, p.repo, p.branch, p.alias
|
||||
log.info(f"Fetching last commit for plugin {user}/{repo_name}@{branch}")
|
||||
repo = Repo(user, repo_name, branch, alias)
|
||||
repo, branch, alias = p.repo, p.branch, p.alias
|
||||
name = alias or p.repo.name
|
||||
commit = None
|
||||
log.info(f"Fetching last commit for plugin {name} from {repo.uri}@{branch}")
|
||||
commit, date = repo.latest_commit()
|
||||
has_submodules = repo.has_submodules()
|
||||
cached_plugin = cache[commit] if cache else None
|
||||
if cached_plugin is not None:
|
||||
log.debug("Cache hit !")
|
||||
cached_plugin.name = alias or repo_name
|
||||
cached_plugin.name = name
|
||||
cached_plugin.date = date
|
||||
return cached_plugin, repo.redirect
|
||||
|
||||
print(f"prefetch {user}/{repo_name}")
|
||||
if has_submodules:
|
||||
sha256 = repo.prefetch_git(commit)
|
||||
else:
|
||||
sha256 = repo.prefetch_github(commit)
|
||||
has_submodules = repo.has_submodules()
|
||||
print(f"prefetch {name}")
|
||||
sha256 = repo.prefetch(commit)
|
||||
|
||||
return (
|
||||
Plugin(alias or repo_name, commit, has_submodules, sha256, date=date),
|
||||
Plugin(name, commit, has_submodules, sha256, date=date),
|
||||
repo.redirect,
|
||||
)
|
||||
|
||||
|
@ -360,16 +430,17 @@ def print_download_error(plugin: str, ex: Exception):
|
|||
|
||||
|
||||
def check_results(
|
||||
results: List[Tuple[str, str, Union[Exception, Plugin], Dict[str, str]]]
|
||||
) -> Tuple[List[Tuple[str, str, Plugin]], Dict[str, str]]:
|
||||
results: List[Tuple[PluginDesc, Union[Exception, Plugin], Dict[str, str]]]
|
||||
) -> Tuple[List[Tuple[PluginDesc, Plugin]], Dict[str, str]]:
|
||||
''' '''
|
||||
failures: List[Tuple[str, Exception]] = []
|
||||
plugins = []
|
||||
redirects: Dict[str, str] = {}
|
||||
for (owner, name, result, redirect) in results:
|
||||
for (pdesc, result, redirect) in results:
|
||||
if isinstance(result, Exception):
|
||||
failures.append((name, result))
|
||||
failures.append((pdesc.name, result))
|
||||
else:
|
||||
plugins.append((owner, name, result))
|
||||
plugins.append((pdesc, result))
|
||||
redirects.update(redirect)
|
||||
|
||||
print(f"{len(results) - len(failures)} plugins were checked", end="")
|
||||
|
@ -384,17 +455,29 @@ def check_results(
|
|||
|
||||
sys.exit(1)
|
||||
|
||||
def make_repo(uri, branch, alias) -> Repo:
|
||||
'''Instantiate a Repo with the correct specialization depending on server (gitub spec)'''
|
||||
# dumb check to see if it's of the form owner/repo (=> github) or https://...
|
||||
res = uri.split('/')
|
||||
if len(res) <= 2:
|
||||
repo = RepoGitHub(res[0], res[1], branch, alias)
|
||||
else:
|
||||
repo = Repo(uri.strip(), branch, alias)
|
||||
return repo
|
||||
|
||||
def parse_plugin_line(line: str) -> PluginDesc:
|
||||
branch = "HEAD"
|
||||
alias = None
|
||||
name, repo = line.split("/")
|
||||
if " as " in repo:
|
||||
repo, alias = repo.split(" as ")
|
||||
uri = line
|
||||
if " as " in uri:
|
||||
uri, alias = line.split(" as ")
|
||||
alias = alias.strip()
|
||||
if "@" in repo:
|
||||
repo, branch = repo.split("@")
|
||||
if "@" in line:
|
||||
uri, branch = line.split("@")
|
||||
|
||||
return PluginDesc(name.strip(), repo.strip(), branch.strip(), alias)
|
||||
repo = make_repo(uri.strip(), branch.strip(), alias)
|
||||
|
||||
return PluginDesc(repo, branch.strip(), alias)
|
||||
|
||||
|
||||
def load_plugin_spec(plugin_file: str) -> List[PluginDesc]:
|
||||
|
@ -404,10 +487,6 @@ def load_plugin_spec(plugin_file: str) -> List[PluginDesc]:
|
|||
if line.startswith("#"):
|
||||
continue
|
||||
plugin = parse_plugin_line(line)
|
||||
if not plugin.owner:
|
||||
msg = f"Invalid repository {line}, must be in the format owner/repo[ as alias]"
|
||||
print(msg, file=sys.stderr)
|
||||
sys.exit(1)
|
||||
plugins.append(plugin)
|
||||
return plugins
|
||||
|
||||
|
@ -467,14 +546,13 @@ class Cache:
|
|||
|
||||
def prefetch(
|
||||
pluginDesc: PluginDesc, cache: Cache
|
||||
) -> Tuple[str, str, Union[Exception, Plugin], dict]:
|
||||
owner, repo = pluginDesc.owner, pluginDesc.repo
|
||||
) -> Tuple[PluginDesc, Union[Exception, Plugin], dict]:
|
||||
try:
|
||||
plugin, redirect = prefetch_plugin(pluginDesc, cache)
|
||||
cache[plugin.commit] = plugin
|
||||
return (owner, repo, plugin, redirect)
|
||||
return (pluginDesc, plugin, redirect)
|
||||
except Exception as e:
|
||||
return (owner, repo, e, {})
|
||||
return (pluginDesc, e, {})
|
||||
|
||||
|
||||
def rewrite_input(
|
||||
|
|
|
@ -374,6 +374,18 @@
|
|||
unmaintained
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
The options
|
||||
<literal>networking.interfaces.<name>.ipv4.routes</literal>
|
||||
and
|
||||
<literal>networking.interfaces.<name>.ipv6.routes</literal>
|
||||
are no longer ignored when using networkd instead of the
|
||||
default scripted network backend by setting
|
||||
<literal>networking.useNetworkd</literal> to
|
||||
<literal>true</literal>.
|
||||
</para>
|
||||
</listitem>
|
||||
<listitem>
|
||||
<para>
|
||||
MultiMC has been replaced with the fork PolyMC due to upstream
|
||||
|
|
|
@ -122,6 +122,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- `pkgs.docbookrx` was removed since it's unmaintained
|
||||
|
||||
- The options `networking.interfaces.<name>.ipv4.routes` and `networking.interfaces.<name>.ipv6.routes` are no longer ignored when using networkd instead of the default scripted network backend by setting `networking.useNetworkd` to `true`.
|
||||
|
||||
- MultiMC has been replaced with the fork PolyMC due to upstream developers being hostile to 3rd party package maintainers. PolyMC removes all MultiMC branding and is aimed at providing proper 3rd party packages like the one contained in Nixpkgs. This change affects the data folder where game instances and other save and configuration files are stored. Users with existing installations should rename `~/.local/share/multimc` to `~/.local/share/polymc`. The main config file's path has also moved from `~/.local/share/multimc/multimc.cfg` to `~/.local/share/polymc/polymc.cfg`.
|
||||
|
||||
- `pkgs.noto-fonts-cjk` is now deprecated in favor of `pkgs.noto-fonts-cjk-sans`
|
||||
|
|
|
@ -336,7 +336,7 @@ in {
|
|||
default = false;
|
||||
type = types.bool;
|
||||
example = true;
|
||||
description = literalDocBook ''
|
||||
description = ''
|
||||
Set the <literal>persistentTimer</literal> option for the
|
||||
<citerefentry><refentrytitle>systemd.timer</refentrytitle>
|
||||
<manvolnum>5</manvolnum></citerefentry>
|
||||
|
|
|
@ -177,6 +177,19 @@ in
|
|||
defaultText = literalExpression ''"''${config.${opt.stateDir}}/dump"'';
|
||||
description = "Path to the dump files.";
|
||||
};
|
||||
|
||||
type = mkOption {
|
||||
type = types.enum [ "zip" "rar" "tar" "sz" "tar.gz" "tar.xz" "tar.bz2" "tar.br" "tar.lz4" ];
|
||||
default = "zip";
|
||||
description = "Archive format used to store the dump file.";
|
||||
};
|
||||
|
||||
file = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = "Filename to be used for the dump. If `null` a default name is choosen by gitea.";
|
||||
example = "gitea-dump";
|
||||
};
|
||||
};
|
||||
|
||||
ssh = {
|
||||
|
@ -634,7 +647,7 @@ in
|
|||
serviceConfig = {
|
||||
Type = "oneshot";
|
||||
User = cfg.user;
|
||||
ExecStart = "${gitea}/bin/gitea dump";
|
||||
ExecStart = "${gitea}/bin/gitea dump --type ${cfg.dump.type}" + optionalString (cfg.dump.file != null) " --file ${cfg.dump.file}";
|
||||
WorkingDirectory = cfg.dump.backupDir;
|
||||
};
|
||||
};
|
||||
|
|
|
@ -56,6 +56,7 @@ let
|
|||
ln -sfn "$(readlink -f "$systemConfig")" /run/current-system
|
||||
|
||||
# Prevent the current configuration from being garbage-collected.
|
||||
mkdir -p /nix/var/nix/gcroots
|
||||
ln -sfn /run/current-system /nix/var/nix/gcroots/current-system
|
||||
|
||||
exit $_status
|
||||
|
|
|
@ -148,7 +148,7 @@ in
|
|||
system.build = mkOption {
|
||||
internal = true;
|
||||
default = {};
|
||||
type = types.lazyAttrsOf types.unspecified;
|
||||
type = with types; lazyAttrsOf (uniq unspecified);
|
||||
description = ''
|
||||
Attribute set of derivations used to setup the system.
|
||||
'';
|
||||
|
|
|
@ -513,7 +513,7 @@ let
|
|||
(assertValueOneOf "EmitLLDP" (boolValues ++ ["nearest-bridge" "non-tpmr-bridge" "customer-bridge"]))
|
||||
(assertValueOneOf "DNSDefaultRoute" boolValues)
|
||||
(assertValueOneOf "IPForward" (boolValues ++ ["ipv4" "ipv6"]))
|
||||
(assertValueOneOf "IPMasquerade" boolValues)
|
||||
(assertValueOneOf "IPMasquerade" (boolValues ++ ["ipv4" "ipv6" "both"]))
|
||||
(assertValueOneOf "IPv6PrivacyExtensions" (boolValues ++ ["prefer-public" "kernel"]))
|
||||
(assertValueOneOf "IPv6AcceptRA" boolValues)
|
||||
(assertInt "IPv6DuplicateAddressDetection")
|
||||
|
|
|
@ -12,6 +12,10 @@ let
|
|||
i.ipv4.addresses
|
||||
++ optionals cfg.enableIPv6 i.ipv6.addresses;
|
||||
|
||||
interfaceRoutes = i:
|
||||
i.ipv4.routes
|
||||
++ optionals cfg.enableIPv6 i.ipv6.routes;
|
||||
|
||||
dhcpStr = useDHCP: if useDHCP == true || useDHCP == null then "yes" else "no";
|
||||
|
||||
slaves =
|
||||
|
@ -94,6 +98,63 @@ in
|
|||
(if i.useDHCP != null then i.useDHCP else false));
|
||||
address = forEach (interfaceIps i)
|
||||
(ip: "${ip.address}/${toString ip.prefixLength}");
|
||||
routes = forEach (interfaceRoutes i)
|
||||
(route: {
|
||||
# Most of these route options have not been tested.
|
||||
# Please fix or report any mistakes you may find.
|
||||
routeConfig =
|
||||
optionalAttrs (route.prefixLength > 0) {
|
||||
Destination = "${route.address}/${toString route.prefixLength}";
|
||||
} //
|
||||
optionalAttrs (route.options ? fastopen_no_cookie) {
|
||||
FastOpenNoCookie = route.options.fastopen_no_cookie;
|
||||
} //
|
||||
optionalAttrs (route.via != null) {
|
||||
Gateway = route.via;
|
||||
} //
|
||||
optionalAttrs (route.options ? onlink) {
|
||||
GatewayOnLink = true;
|
||||
} //
|
||||
optionalAttrs (route.options ? initrwnd) {
|
||||
InitialAdvertisedReceiveWindow = route.options.initrwnd;
|
||||
} //
|
||||
optionalAttrs (route.options ? initcwnd) {
|
||||
InitialCongestionWindow = route.options.initcwnd;
|
||||
} //
|
||||
optionalAttrs (route.options ? pref) {
|
||||
IPv6Preference = route.options.pref;
|
||||
} //
|
||||
optionalAttrs (route.options ? mtu) {
|
||||
MTUBytes = route.options.mtu;
|
||||
} //
|
||||
optionalAttrs (route.options ? metric) {
|
||||
Metric = route.options.metric;
|
||||
} //
|
||||
optionalAttrs (route.options ? src) {
|
||||
PreferredSource = route.options.src;
|
||||
} //
|
||||
optionalAttrs (route.options ? protocol) {
|
||||
Protocol = route.options.protocol;
|
||||
} //
|
||||
optionalAttrs (route.options ? quickack) {
|
||||
QuickAck = route.options.quickack;
|
||||
} //
|
||||
optionalAttrs (route.options ? scope) {
|
||||
Scope = route.options.scope;
|
||||
} //
|
||||
optionalAttrs (route.options ? from) {
|
||||
Source = route.options.from;
|
||||
} //
|
||||
optionalAttrs (route.options ? table) {
|
||||
Table = route.options.table;
|
||||
} //
|
||||
optionalAttrs (route.options ? advmss) {
|
||||
TCPAdvertisedMaximumSegmentSize = route.options.advmss;
|
||||
} //
|
||||
optionalAttrs (route.options ? ttl-propagate) {
|
||||
TTLPropagate = route.options.ttl-propagate == "enabled";
|
||||
};
|
||||
});
|
||||
networkConfig.IPv6PrivacyExtensions = "kernel";
|
||||
linkConfig = optionalAttrs (i.macAddress != null) {
|
||||
MACAddress = i.macAddress;
|
||||
|
|
|
@ -103,6 +103,11 @@ let
|
|||
description = ''
|
||||
Other route options. See the symbol <literal>OPTIONS</literal>
|
||||
in the <literal>ip-route(8)</literal> manual page for the details.
|
||||
You may also specify <literal>metric</literal>,
|
||||
<literal>src</literal>, <literal>protocol</literal>,
|
||||
<literal>scope</literal>, <literal>from</literal>
|
||||
and <literal>table</literal>, which are technically
|
||||
not route options, in the sense used in the manual.
|
||||
'';
|
||||
};
|
||||
|
||||
|
@ -208,6 +213,14 @@ let
|
|||
type = with types; listOf (submodule (routeOpts 4));
|
||||
description = ''
|
||||
List of extra IPv4 static routes that will be assigned to the interface.
|
||||
<warning><para>If the route type is the default <literal>unicast</literal>, then the scope
|
||||
is set differently depending on the value of <option>networking.useNetworkd</option>:
|
||||
the script-based backend sets it to <literal>link</literal>, while networkd sets
|
||||
it to <literal>global</literal>.</para></warning>
|
||||
If you want consistency between the two implementations,
|
||||
set the scope of the route manually with
|
||||
<literal>networking.interfaces.eth0.ipv4.routes = [{ options.scope = "global"; }]</literal>
|
||||
for example.
|
||||
'';
|
||||
};
|
||||
|
||||
|
|
|
@ -18,8 +18,6 @@ import ./make-test-python.nix ({ pkgs, lib, ...} : {
|
|||
enable = true;
|
||||
user = "alice";
|
||||
};
|
||||
# Catch GDM failures that don't happen with AutomaticLoginEnable, e.g. https://github.com/NixOS/nixpkgs/issues/149539
|
||||
gdm.autoLogin.delay = 1;
|
||||
};
|
||||
|
||||
services.xserver.desktopManager.gnome.enable = true;
|
||||
|
|
|
@ -740,6 +740,7 @@ let
|
|||
routes = {
|
||||
name = "routes";
|
||||
machine = {
|
||||
networking.useNetworkd = networkd;
|
||||
networking.useDHCP = false;
|
||||
networking.interfaces.eth0 = {
|
||||
ipv4.addresses = [ { address = "192.168.1.2"; prefixLength = 24; } ];
|
||||
|
@ -749,7 +750,13 @@ let
|
|||
{ address = "2001:1470:fffd:2098::"; prefixLength = 64; via = "fdfd:b3f0::1"; }
|
||||
];
|
||||
ipv4.routes = [
|
||||
{ address = "10.0.0.0"; prefixLength = 16; options = { mtu = "1500"; }; }
|
||||
{ address = "10.0.0.0"; prefixLength = 16; options = {
|
||||
mtu = "1500";
|
||||
# Explicitly set scope because iproute and systemd-networkd
|
||||
# disagree on what the scope should be
|
||||
# if the type is the default "unicast"
|
||||
scope = "link";
|
||||
}; }
|
||||
{ address = "192.168.2.0"; prefixLength = 24; via = "192.168.1.1"; }
|
||||
];
|
||||
};
|
||||
|
@ -798,6 +805,7 @@ let
|
|||
ipv6Table, targetIPv6Table
|
||||
)
|
||||
|
||||
'' + optionalString (!networkd) ''
|
||||
with subtest("test clean-up of the tables"):
|
||||
machine.succeed("systemctl stop network-addresses-eth0")
|
||||
ipv4Residue = machine.succeed("ip -4 route list dev eth0 | head -n-3").strip()
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "scream";
|
||||
version = "3.8";
|
||||
version = "3.9";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "duncanthrax";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-7UzwEoZujTN8i056Wf+0QtjyU+/UZlqcSompiAGHT54=";
|
||||
sha256 = "sha256-JxDR7UhS4/+oGQ9Fwm4f+yBM9OyX0Srvr9n/vaZVvxQ=";
|
||||
};
|
||||
|
||||
buildInputs = lib.optional pulseSupport libpulseaudio
|
||||
|
|
|
@ -140,6 +140,21 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
better-jumper = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "better-jumper";
|
||||
ename = "better-jumper";
|
||||
version = "1.0.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/better-jumper-1.0.1.tar";
|
||||
sha256 = "0jykcz4g0q29k7rawsp2n5zmx88kdh3kbh0497vvpks74vvk2c9f";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/better-jumper.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
bison-mode = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "bison-mode";
|
||||
|
@ -409,6 +424,21 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
evil-goggles = callPackage ({ elpaBuild, emacs, evil, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "evil-goggles";
|
||||
ename = "evil-goggles";
|
||||
version = "0.0.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/evil-goggles-0.0.2.tar";
|
||||
sha256 = "0cpxbl2vls52dydaa1x4jkizhnd3vmvs30ivihdl964vmpb1s7yl";
|
||||
};
|
||||
packageRequires = [ emacs evil ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/evil-goggles.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
evil-indent-plus = callPackage ({ cl-lib ? null
|
||||
, elpaBuild
|
||||
, evil
|
||||
|
@ -617,10 +647,10 @@
|
|||
elpaBuild {
|
||||
pname = "geiser-guile";
|
||||
ename = "geiser-guile";
|
||||
version = "0.20.1";
|
||||
version = "0.21.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/geiser-guile-0.20.1.tar";
|
||||
sha256 = "0psm53ryh1wica2730xcw4lc2jv06d08wnjfyd8f61952zzj57k7";
|
||||
url = "https://elpa.nongnu.org/nongnu/geiser-guile-0.21.1.tar";
|
||||
sha256 = "1sm19jmaxzxkxd4jksgvc064jv90bc6q0yf8zz0s77y0aldw8sf5";
|
||||
};
|
||||
packageRequires = [ emacs geiser ];
|
||||
meta = {
|
||||
|
@ -739,16 +769,16 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
go-mode = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||
go-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "go-mode";
|
||||
ename = "go-mode";
|
||||
version = "1.5.0";
|
||||
version = "1.6.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/go-mode-1.5.0.tar";
|
||||
sha256 = "0v4lw5dkijajpxyigin4cd5q4ldrabljaz65zr5f7mgqn5sizj3q";
|
||||
url = "https://elpa.nongnu.org/nongnu/go-mode-1.6.0.tar";
|
||||
sha256 = "1j83i56ldkf79l7dyjbv9rvy3ki2xlvgj2y7jnap92hbd2q50jsy";
|
||||
};
|
||||
packageRequires = [];
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/go-mode.html";
|
||||
license = lib.licenses.free;
|
||||
|
@ -912,6 +942,21 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
iedit = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "iedit";
|
||||
ename = "iedit";
|
||||
version = "0.9.9.9";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/iedit-0.9.9.9.tar";
|
||||
sha256 = "1kwm7pa1x5dbn9irdrz9vg5zivrqx1w2ywrbpglk2lgd9kff0nsj";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/iedit.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
inf-clojure = callPackage ({ clojure-mode
|
||||
, elpaBuild
|
||||
, emacs
|
||||
|
@ -946,6 +991,21 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
jinja2-mode = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "jinja2-mode";
|
||||
ename = "jinja2-mode";
|
||||
version = "0.3";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/jinja2-mode-0.3.tar";
|
||||
sha256 = "1zkyac4akwnz8a136xyn6915j6jgpf0xilbf4krw7q6k8nkks2m4";
|
||||
};
|
||||
packageRequires = [];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/jinja2-mode.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
julia-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "julia-mode";
|
||||
|
@ -961,6 +1021,21 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
keycast = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "keycast";
|
||||
ename = "keycast";
|
||||
version = "1.1.3";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/keycast-1.1.3.tar";
|
||||
sha256 = "0b4vyaxqdw11ai81vnvif8i02jcaf5hk64kbb7bs90527zwz2fw0";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/keycast.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
lua-mode = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "lua-mode";
|
||||
|
@ -1199,6 +1274,27 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
org-drill = callPackage ({ elpaBuild
|
||||
, emacs
|
||||
, fetchurl
|
||||
, lib
|
||||
, org
|
||||
, persist
|
||||
, seq }:
|
||||
elpaBuild {
|
||||
pname = "org-drill";
|
||||
ename = "org-drill";
|
||||
version = "2.7.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/org-drill-2.7.0.tar";
|
||||
sha256 = "0f61cfw7qy8w5835hh0rh33ai5i50dzliymdpkvmvffgkx7mikx5";
|
||||
};
|
||||
packageRequires = [ emacs org persist seq ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/org-drill.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
org-journal = callPackage ({ elpaBuild, emacs, fetchurl, lib, org }:
|
||||
elpaBuild {
|
||||
pname = "org-journal";
|
||||
|
@ -1229,6 +1325,21 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
org-present = callPackage ({ elpaBuild, fetchurl, lib, org }:
|
||||
elpaBuild {
|
||||
pname = "org-present";
|
||||
ename = "org-present";
|
||||
version = "0.1";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/org-present-0.1.tar";
|
||||
sha256 = "1b32faz4nv5s4fv0rxkr70dkjlmpiwzds513wpkwr6fvqmcz4kdy";
|
||||
};
|
||||
packageRequires = [ org ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/org-present.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
org-superstar = callPackage ({ elpaBuild, emacs, fetchurl, lib, org }:
|
||||
elpaBuild {
|
||||
pname = "org-superstar";
|
||||
|
@ -1244,6 +1355,36 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
org-tree-slide = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "org-tree-slide";
|
||||
ename = "org-tree-slide";
|
||||
version = "2.8.18";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/org-tree-slide-2.8.18.tar";
|
||||
sha256 = "0xx8svbh6ks5112rac4chms0f8drhiwxnc3knrzaj8i1zb89l0n3";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/org-tree-slide.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
orgit = callPackage ({ elpaBuild, emacs, fetchurl, lib, magit, org }:
|
||||
elpaBuild {
|
||||
pname = "orgit";
|
||||
ename = "orgit";
|
||||
version = "1.7.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/orgit-1.7.2.tar";
|
||||
sha256 = "1kf72l8h3wqgnrchy6wvhm3nmc9drh82yw5211f4xgg2ckr60rn1";
|
||||
};
|
||||
packageRequires = [ emacs magit org ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/orgit.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
pacmacs = callPackage ({ cl-lib ? null
|
||||
, dash
|
||||
, elpaBuild
|
||||
|
@ -1559,6 +1700,21 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
spacemacs-theme = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "spacemacs-theme";
|
||||
ename = "spacemacs-theme";
|
||||
version = "0.2";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/spacemacs-theme-0.2.tar";
|
||||
sha256 = "07lkaj6gm5iz503p5l6sm1y62mc5wk13nrwzv81f899jw99jcgml";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/spacemacs-theme.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
subatomic-theme = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "subatomic-theme";
|
||||
|
@ -1810,6 +1966,21 @@
|
|||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
with-simulated-input = callPackage ({ elpaBuild, emacs, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "with-simulated-input";
|
||||
ename = "with-simulated-input";
|
||||
version = "3.0";
|
||||
src = fetchurl {
|
||||
url = "https://elpa.nongnu.org/nongnu/with-simulated-input-3.0.tar";
|
||||
sha256 = "0ws8z82kb0bh6z4yvw2kz3ib0j7v47c5l5dxlrn3kr1qk99z65l6";
|
||||
};
|
||||
packageRequires = [ emacs ];
|
||||
meta = {
|
||||
homepage = "https://elpa.gnu.org/packages/with-simulated-input.html";
|
||||
license = lib.licenses.free;
|
||||
};
|
||||
}) {};
|
||||
ws-butler = callPackage ({ elpaBuild, fetchurl, lib }:
|
||||
elpaBuild {
|
||||
pname = "ws-butler";
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -5,13 +5,13 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "pdfarranger";
|
||||
version = "1.8.1";
|
||||
version = "1.8.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1lcmlr7x4143f7wcn0m1ijlvch07nww2qfp3jfnacgy889ijvbfx";
|
||||
sha256 = "18bpnnwjx72d5ps06dr89mkixiwzc9hf5gr75k8qcnrkshl038v2";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -54,7 +54,6 @@ let
|
|||
# and wrapped to terraform via deecb4c1aab780047d79978c636eeb879dd68630
|
||||
libvirt = automated-providers.libvirt.overrideAttrs (_: { propagatedBuildInputs = [ cdrtools ]; });
|
||||
teleport = callPackage ./teleport { };
|
||||
vpsadmin = callPackage ./vpsadmin { };
|
||||
};
|
||||
|
||||
# Put all the providers we not longer support in this list.
|
||||
|
|
|
@ -1161,6 +1161,15 @@
|
|||
"vendorSha256": "0s0kf1v2217q9hfmc7r2yybcfk33k566dfvs2jiq63kyjnadhb0k",
|
||||
"version": "2.1.0"
|
||||
},
|
||||
"vpsadmin": {
|
||||
"owner": "vpsfreecz",
|
||||
"provider-source-address": "registry.terraform.io/vpsfreecz/vpsadmin",
|
||||
"repo": "terraform-provider-vpsadmin",
|
||||
"rev": "v0.2.0",
|
||||
"sha256": "1jb5s8lv8az1az9an8kj8bi0hh71zcaw5mpa4zyba5xk1vqig0kv",
|
||||
"vendorSha256": "1xnscd7yir736y913r7nvn3a78h8cwc7m206h0vcc0hrl1jvf45i",
|
||||
"version": "0.2.0"
|
||||
},
|
||||
"vra7": {
|
||||
"owner": "vmware",
|
||||
"provider-source-address": "registry.terraform.io/vmware/vra7",
|
||||
|
|
|
@ -1,29 +0,0 @@
|
|||
{ lib, fetchFromGitHub, buildGoModule }:
|
||||
buildGoModule rec {
|
||||
pname = "terraform-provider-vpsadmin";
|
||||
version = "0.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vpsfreecz";
|
||||
repo = "terraform-provider-vpsadmin";
|
||||
rev = "v${version}";
|
||||
sha256 = "1vny6w9arbbra04bjjafisaswinm93ic1phy59l0g78sqf6x3a7v";
|
||||
};
|
||||
|
||||
vendorSha256 = "0j90fnzba23mwf9bzf9w5h0hszkl3h61p5i780s9v9c0hbzhbqsh";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
# Terraform allow checking the provider versions, but this breaks
|
||||
# if the versions are not provided via file paths.
|
||||
postInstall = "mv $out/bin/${pname}{,_v${version}}";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Terraform provider for vpsAdmin";
|
||||
homepage = "https://github.com/vpsfreecz/terraform-provider-vpsadmin";
|
||||
license = licenses.mpl20;
|
||||
maintainers = with maintainers; [ zimbatm ];
|
||||
};
|
||||
}
|
|
@ -11,15 +11,15 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "werf";
|
||||
version = "1.2.55";
|
||||
version = "1.2.56";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "werf";
|
||||
repo = "werf";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-yLrCE0C8+LIXnBm4xG4q0vXtjTyau6mjkZ+/o/lbGhI=";
|
||||
sha256 = "sha256-6gDSH/YWkXeYyEwJDYNNCAWTBjwGx7kNcsCqmmwqJy0=";
|
||||
};
|
||||
vendorSha256 = "sha256-2pJpzu6TDkZ7tecwf7NfxN/gwSBIZmCFi2aJ+KTPkbM=";
|
||||
vendorSha256 = "sha256-Cod7nFLu6au0uxrJLBf7SG1YBasRzmDjt+FmtZqMw3U=";
|
||||
proxyVendor = true;
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
|
|
|
@ -1,59 +1,71 @@
|
|||
{ autoconf, automake, boost, cbor-diag, cddl, fetchFromGitHub, file, libctemplate, libmaxminddb
|
||||
, libpcap, libtins, libtool, xz, openssl, pkg-config, lib, stdenv, tcpdump, wireshark-cli
|
||||
{ lib, stdenv, fetchFromGitHub
|
||||
, asciidoctor, autoreconfHook, pkg-config
|
||||
, boost, libctemplate, libmaxminddb, libpcap, libtins, openssl, protobuf, xz, zlib
|
||||
, cbor-diag, cddl, diffutils, file, mktemp, netcat, tcpdump, wireshark-cli
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "compactor";
|
||||
version = "1.1.0";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dns-stats";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "0qykdnwi2q9sajkkc2sl5f00lvxjfymqjzqm0limsziykanh87c0";
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-AUNPUk70VwJ0nZgMPLMU258nqkL4QP6km0USrZi2ea0=";
|
||||
};
|
||||
|
||||
# cbor-diag, cddl and wireshark-cli are only used for tests.
|
||||
nativeBuildInputs = [ autoconf automake libtool pkg-config cbor-diag cddl wireshark-cli ];
|
||||
nativeBuildInputs = [
|
||||
asciidoctor
|
||||
autoreconfHook
|
||||
pkg-config
|
||||
];
|
||||
buildInputs = [
|
||||
boost
|
||||
libpcap
|
||||
openssl
|
||||
libtins
|
||||
xz
|
||||
libctemplate
|
||||
libmaxminddb
|
||||
libpcap
|
||||
libtins
|
||||
openssl
|
||||
protobuf
|
||||
xz
|
||||
zlib
|
||||
];
|
||||
|
||||
prePatch = ''
|
||||
postPatch = ''
|
||||
patchShebangs test-scripts/
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
${stdenv.shell} autogen.sh
|
||||
substituteInPlace configure \
|
||||
--replace "/usr/bin/file" "${file}/bin/file"
|
||||
'';
|
||||
CXXFLAGS = "-std=c++11";
|
||||
|
||||
configureFlags = [
|
||||
"--with-boost-libdir=${boost.out}/lib"
|
||||
"--with-boost=${boost.dev}"
|
||||
];
|
||||
enableParallelBuilding = true;
|
||||
|
||||
doCheck = true;
|
||||
preCheck = ''
|
||||
substituteInPlace test-scripts/check-live-pcap.sh \
|
||||
--replace "/usr/sbin/tcpdump" "${tcpdump}/bin/tcpdump"
|
||||
rm test-scripts/same-tshark-output.sh
|
||||
''; # TODO: https://github.com/dns-stats/compactor/issues/49 (failing test)
|
||||
doCheck = !stdenv.isDarwin; # check-dnstap.sh failing on Darwin
|
||||
checkInputs = [
|
||||
cbor-diag
|
||||
cddl
|
||||
diffutils
|
||||
file
|
||||
mktemp
|
||||
netcat
|
||||
tcpdump
|
||||
wireshark-cli
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tools to capture DNS traffic and record it in C-DNS files";
|
||||
homepage = "http://dns-stats.org/";
|
||||
homepage = "https://dns-stats.org/";
|
||||
changelog = "https://github.com/dns-stats/${pname}/raw/${version}/ChangeLog.txt";
|
||||
license = [ licenses.boost licenses.mpl20 licenses.openssl ];
|
||||
license = licenses.mpl20;
|
||||
maintainers = with maintainers; [ fdns ];
|
||||
platforms = lib.platforms.unix;
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -5,17 +5,17 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "aerc";
|
||||
version = "0.6.0";
|
||||
version = "0.7.1";
|
||||
|
||||
src = fetchFromSourcehut {
|
||||
owner = "~rjarry";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256-RaHigTp1YGkjQ46gFLhKcJuajekcCgfozu0ndCNq5Ac=";
|
||||
sha256 = "sha256-wiylBBqnivDnMUyCg3Zateu4jcjicTfrQFALT8dg5No=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
vendorSha256 = "sha256-ZFs2CXmNZpGae7bD15yTh3w6b00C7AgOwGuz72d2wHs=";
|
||||
vendorSha256 = "sha256-3BbKf2xSzXznCB5UU/cThVg329GSeJG9KwjaS+tN3Rs=";
|
||||
|
||||
doCheck = false;
|
||||
|
||||
|
|
32
pkgs/applications/video/iina/default.nix
Normal file
32
pkgs/applications/video/iina/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ lib
|
||||
, fetchurl
|
||||
, stdenv
|
||||
, undmg
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "iina";
|
||||
version = "1.2.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/iina/iina/releases/download/v${version}/IINA.v${version}.dmg";
|
||||
sha256 = "sha256-kbh+gAVfCXoct6jJGXnetTAzFfIGdVLL5zh/SL/EJzY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ undmg ];
|
||||
|
||||
sourceRoot = "IINA.app";
|
||||
|
||||
installPhase = ''
|
||||
mkdir -p "$out/Applications/IINA.app"
|
||||
cp -R . "$out/Applications/IINA.app"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://iina.io/";
|
||||
description = "The modern media player for macOS";
|
||||
platforms = platforms.darwin;
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ arkivm ];
|
||||
};
|
||||
}
|
|
@ -4,9 +4,9 @@
|
|||
mkXfceDerivation {
|
||||
category = "apps";
|
||||
pname = "ristretto";
|
||||
version = "0.12.1";
|
||||
version = "0.12.2";
|
||||
|
||||
sha256 = "sha256-Kwtema8mydSPQadeaw/OTnGCHUNuJpvHbf7l4YtICYE=";
|
||||
sha256 = "sha256-OIt92DpDAZpy/fAOauGnzsufUi+y3Ag7KblZ5EUGuyQ=";
|
||||
|
||||
buildInputs = [ glib gtk3 libexif libxfce4ui libxfce4util xfconf ];
|
||||
|
||||
|
|
|
@ -15,14 +15,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "fastavro";
|
||||
version = "1.4.4";
|
||||
version = "1.4.9";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "1sf8nqifwp0cggk59s22ygj3rm1nysa8b91xl8bpv2knqyjy1q32";
|
||||
sha256 = "0af6d67s6mi9ylqla8nga6cj4y0y4gp3l2q68br2mrdyivkml0g0";
|
||||
};
|
||||
|
||||
preBuild = ''
|
||||
|
|
|
@ -57,7 +57,7 @@ buildPythonPackage rec {
|
|||
rm tests/system/test_system.py tests/unit/test__gapic.py
|
||||
'';
|
||||
|
||||
pythonImortsCheck = [
|
||||
pythonImportsCheck = [
|
||||
"google.cloud.logging"
|
||||
"google.cloud.logging_v2"
|
||||
];
|
||||
|
|
|
@ -1,19 +1,21 @@
|
|||
{ lib
|
||||
, aiohttp
|
||||
, asynctest
|
||||
, buildPythonPackage
|
||||
, coreutils
|
||||
, fetchFromGitHub
|
||||
, google-auth
|
||||
, google-auth-oauthlib
|
||||
, google-cloud-pubsub
|
||||
, pythonOlder
|
||||
, requests_oauthlib
|
||||
, pytest-aiohttp
|
||||
, pytestCheckHook
|
||||
, pythonOlder
|
||||
, requests_oauthlib
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "google-nest-sdm";
|
||||
version = "1.3.0";
|
||||
version = "1.5.1";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
@ -22,7 +24,7 @@ buildPythonPackage rec {
|
|||
owner = "allenporter";
|
||||
repo = "python-google-nest-sdm";
|
||||
rev = version;
|
||||
sha256 = "sha256-E0e4lLUBzHKA3clmb/JUBE0KGciQ1xrmLTSeSkGDsWo=";
|
||||
sha256 = "sha256-8Y3ixkDl/AmXQMOY+29og5njMh9M2qjwWBGCsiqX5PU=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
@ -34,10 +36,17 @@ buildPythonPackage rec {
|
|||
];
|
||||
|
||||
checkInputs = [
|
||||
asynctest
|
||||
coreutils
|
||||
pytest-aiohttp
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace tests/event_media_test.py \
|
||||
--replace "/bin/echo" "${coreutils}/bin/echo"
|
||||
'';
|
||||
|
||||
pythonImportsCheck = [
|
||||
"google_nest_sdm"
|
||||
];
|
||||
|
|
|
@ -12,14 +12,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyrogram";
|
||||
version = "1.3.5";
|
||||
version = "1.3.6";
|
||||
|
||||
disabled = pythonOlder "3.6";
|
||||
|
||||
src = fetchPypi {
|
||||
pname = "Pyrogram";
|
||||
inherit version;
|
||||
hash = "sha256-51/to8ZCyK6cYWQCGWcQ07rGDR29awfxcUNnSF5vIKE=";
|
||||
hash = "sha256-Q3JGTNSfqEMUqEru0crcbE8Ut/n+9MjFIDRKRSZ7tlE=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -6,13 +6,13 @@
|
|||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
version = "1.0.0";
|
||||
version = "1.1.0";
|
||||
pname = "pysnooper";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "PySnooper";
|
||||
sha256 = "4804aed962f36db85fefdc33edbd109b96a13153e6ffed82d1e6023b4f483b64";
|
||||
sha256 = "0fa932ad396d2bac089d4b1f94f0ce49cde4140ee64ddd24a4065fadea10fcc9";
|
||||
};
|
||||
|
||||
# test dependency python-toolbox fails with py27
|
||||
|
|
|
@ -9,14 +9,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "sense-energy";
|
||||
version = "0.9.4";
|
||||
version = "0.9.6";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "scottbonline";
|
||||
repo = "sense";
|
||||
rev = version;
|
||||
hash = "sha256-X+sGfcEodxWkBmDamJkrZVsjyKkuqzsZ5BJFwOgL63M=";
|
||||
hash = "sha256-A4FSL+T2tWGEYmjOFsf99Sn17IT7HP7/ILQjUiPUl0A=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "wled";
|
||||
version = "0.10.2";
|
||||
version = "0.11.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
|||
owner = "frenck";
|
||||
repo = "python-wled";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-tqR/edkBFseldSXGoekfRmw//h6Z/Xcg1W0HXJvLhtk=";
|
||||
sha256 = "02mc9dbz7lvk7d8aaimggm3vg99bc42njsv8sfchvc9amvdi94qy";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -1,30 +0,0 @@
|
|||
From 13c633bf0075daa6ff973f368a25cf205caa017e Mon Sep 17 00:00:00 2001
|
||||
From: Pascal Bach <pascal.bach@nextrem.ch>
|
||||
Date: Sat, 11 Dec 2021 10:07:01 +0100
|
||||
Subject: [PATCH] gitlab-runner: don't checked for fixed runtime
|
||||
|
||||
We already use 1.16.12 which has the proper fix
|
||||
---
|
||||
helpers/patches/issue_28732/syscall.go | 7 +------
|
||||
1 file changed, 1 insertion(+), 6 deletions(-)
|
||||
|
||||
diff --git a/helpers/patches/issue_28732/syscall.go b/helpers/patches/issue_28732/syscall.go
|
||||
index 580513b57..fa9e4cc85 100644
|
||||
--- a/helpers/patches/issue_28732/syscall.go
|
||||
+++ b/helpers/patches/issue_28732/syscall.go
|
||||
@@ -2,11 +2,6 @@
|
||||
|
||||
package issue_28732
|
||||
|
||||
-import (
|
||||
- "syscall"
|
||||
-)
|
||||
-
|
||||
func AssertFixPresent() {
|
||||
- // Ensure that Issue28732Fix fixed runtime is used
|
||||
- syscall.Issue28732Fix()
|
||||
+ // Issue already fixed by using go 1.16.12
|
||||
}
|
||||
--
|
||||
2.34.0
|
||||
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, buildGoPackage, fetchFromGitLab, fetchurl }:
|
||||
|
||||
let
|
||||
version = "14.6.0";
|
||||
version = "14.7.0";
|
||||
in
|
||||
buildGoPackage rec {
|
||||
inherit version;
|
||||
|
@ -19,12 +19,11 @@ buildGoPackage rec {
|
|||
owner = "gitlab-org";
|
||||
repo = "gitlab-runner";
|
||||
rev = "v${version}";
|
||||
sha256 = "1sgz8gri51i2pxnzzkcvwx5ncw1rjz7ain82hlcx6f3874qfsniy";
|
||||
sha256 = "0l7bbmhvgz12nq52nmvgs1qmcknikw8f2dn9l93ijb1sr495fygl";
|
||||
};
|
||||
|
||||
patches = [
|
||||
./fix-shell-path.patch
|
||||
./0001-gitlab-runner-don-t-checked-for-fixed-runtime.patch
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
|
|
44
pkgs/games/otto-matic/default.nix
Normal file
44
pkgs/games/otto-matic/default.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
{ lib, stdenv, fetchFromGitHub, SDL2, cmake, makeWrapper }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "OttoMatic";
|
||||
version = "4.0.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jorio";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "sha256:1yd4clks7kr2hn69c4q1ykc92sw6axbspambm03viapr834bjz3q";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
SDL2
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
makeWrapper
|
||||
];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/share/OttoMatic
|
||||
mv Data $out/share/OttoMatic
|
||||
install -Dm755 {.,$out/bin}/OttoMatic
|
||||
wrapProgram $out/bin/OttoMatic --run "cd $out/share/OttoMatic"
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A port of Otto Matic, a 2001 Macintosh game by Pangea Software, for modern operating systems";
|
||||
homepage = "https://github.com/jorio/OttoMatic";
|
||||
license = with licenses; [
|
||||
cc-by-sa-40
|
||||
];
|
||||
maintainers = with maintainers; [ lux ];
|
||||
platforms = platforms.linux;
|
||||
};
|
||||
}
|
67
pkgs/misc/drivers/epson-201401w/default.nix
Normal file
67
pkgs/misc/drivers/epson-201401w/default.nix
Normal file
|
@ -0,0 +1,67 @@
|
|||
{ lib, stdenv, fetchurl, rpmextract, autoreconfHook, file, libjpeg, cups }:
|
||||
|
||||
let
|
||||
version = "1.0.0";
|
||||
filterVersion = "1.0.0";
|
||||
in stdenv.mkDerivation {
|
||||
pname = "epson-201401w";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
# NOTE: Don't forget to update the webarchive link too!
|
||||
urls = [
|
||||
"https://download3.ebz.epson.net/dsc/f/03/00/03/45/41/92e9c9254f0ee4230a069545ba27ec2858a2c457/epson-inkjet-printer-201401w-1.0.0-1lsb3.2.src.rpm"
|
||||
"https://web.archive.org/web/20200725175832/https://download3.ebz.epson.net/dsc/f/03/00/03/45/41/92e9c9254f0ee4230a069545ba27ec2858a2c457/epson-inkjet-printer-201401w-1.0.0-1lsb3.2.src.rpm"
|
||||
];
|
||||
sha256 = "0c60m1sd59s4sda38dc5nniwa7dh1b0kv1maajr0x9d38gqlyk3x";
|
||||
};
|
||||
patches = [ ./fixbuild.patch ];
|
||||
|
||||
nativeBuildInputs = [ rpmextract autoreconfHook file ];
|
||||
|
||||
buildInputs = [ libjpeg cups ];
|
||||
|
||||
unpackPhase = ''
|
||||
rpmextract $src
|
||||
tar -zxf epson-inkjet-printer-201401w-${version}.tar.gz
|
||||
tar -zxf epson-inkjet-printer-filter-${filterVersion}.tar.gz
|
||||
for ppd in epson-inkjet-printer-201401w-${version}/ppds/*; do
|
||||
substituteInPlace $ppd --replace "/opt/epson-inkjet-printer-201401w" "$out"
|
||||
substituteInPlace $ppd --replace "/cups/lib" "/lib/cups"
|
||||
done
|
||||
cd epson-inkjet-printer-filter-${filterVersion}
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
chmod +x configure
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
cd ../epson-inkjet-printer-201401w-${version}
|
||||
cp -a lib64 resource watermark $out
|
||||
mkdir -p $out/share/cups/model/epson-inkjet-printer-201401w
|
||||
cp -a ppds $out/share/cups/model/epson-inkjet-printer-201401w/
|
||||
cp -a Manual.txt $out/doc/
|
||||
cp -a README $out/doc/README.driver
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.openprinting.org/driver/epson-201401w";
|
||||
description =
|
||||
"Epson printer driver (L456, L455, L366, L365, L362, L360, L312, L310, L222, L220, L132, L130)";
|
||||
longDescription = ''
|
||||
This software is a filter program used with the Common UNIX Printing
|
||||
System (CUPS) under Linux. It supplies high quality printing with
|
||||
Seiko Epson Color Ink Jet Printers.
|
||||
|
||||
To use the driver adjust your configuration.nix file:
|
||||
services.printing = {
|
||||
enable = true;
|
||||
drivers = [ pkgs.epson-201401w ];
|
||||
};
|
||||
'';
|
||||
license = with licenses; [ lgpl21 epson ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.lunarequest ];
|
||||
};
|
||||
}
|
101
pkgs/misc/drivers/epson-201401w/fixbuild.patch
Normal file
101
pkgs/misc/drivers/epson-201401w/fixbuild.patch
Normal file
|
@ -0,0 +1,101 @@
|
|||
diff --git a/src/pagemanager/pagemanager.c b/src/pagemanager/pagemanager.c
|
||||
index 029e6d3..3c1f450 100644
|
||||
--- a/src/pagemanager/pagemanager.c
|
||||
+++ b/src/pagemanager/pagemanager.c
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "epcgdef.h"
|
||||
#include "debuglog.h"
|
||||
#include "memory.h"
|
||||
-#include "raster.h"
|
||||
+#include "raster-helper.h"
|
||||
#include "pagemanager.h"
|
||||
|
||||
extern int JobCanceled;
|
||||
@@ -45,7 +45,7 @@ fetchRaster(EpsPageManager *pageManager)
|
||||
int error = 0;
|
||||
int did_fetch = 0;
|
||||
int read_bytes = 0;
|
||||
- int nraster;
|
||||
+ size_t nraster;
|
||||
|
||||
while (error == 0 && did_fetch == 0 && JobCanceled == 0) {
|
||||
eps_raster_fetch(privateData->raster_h, NULL, 0, 0, &status);
|
||||
@@ -212,7 +212,7 @@ int pageManagerGetPageRegion(EpsPageManager *pageManager, EpsPageRegion *pageReg
|
||||
return EPS_OK;
|
||||
}
|
||||
|
||||
-int pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize)
|
||||
+size_t pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize)
|
||||
{
|
||||
PageManagerPrivateData *privateData = NULL;
|
||||
int error = EPS_OK;
|
||||
diff --git a/src/pagemanager/pagemanager.h b/src/pagemanager/pagemanager.h
|
||||
index 87fbbd5..c9743fb 100644
|
||||
--- a/src/pagemanager/pagemanager.h
|
||||
+++ b/src/pagemanager/pagemanager.h
|
||||
@@ -31,7 +31,7 @@ extern "C"
|
||||
#define EPS_ERROR -1
|
||||
#define EPS_OK 0
|
||||
|
||||
-typedef int (*EpsRasterSource)(char *buf, int bufSize);
|
||||
+typedef size_t (*EpsRasterSource)(char *buf, int bufSize);
|
||||
|
||||
typedef struct {
|
||||
EpsRasterSource rasterSource;
|
||||
@@ -47,7 +47,7 @@ typedef struct {
|
||||
EpsPageManager* pageManagerCreate(EpsPageRegion pageRegion, EpsFilterPrintOption filterPrintOption, EpsRasterSource rasterSource);
|
||||
void pageManagerDestroy(EpsPageManager *pageManager);
|
||||
int pageManagerGetPageRegion(EpsPageManager *pageManager, EpsPageRegion *pageRegion);
|
||||
-int pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize);
|
||||
+size_t pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize);
|
||||
int pageManagerIsNextPage(EpsPageManager *pageManager);
|
||||
|
||||
#ifdef __cplusplus
|
||||
diff --git a/src/raster/raster.c b/src/raster/raster.c
|
||||
index 7e4946b..dd5aef6 100644
|
||||
--- a/src/raster/raster.c
|
||||
+++ b/src/raster/raster.c
|
||||
@@ -218,7 +218,7 @@ eps_raster_init (RASTER * handle, EpsRasterOpt * data, EpsRasterPipeline * pipel
|
||||
|
||||
/* if raster_p equals NULL means that it is need to flush a page. */
|
||||
int
|
||||
-eps_raster_print (RASTER handle, char * raster_p, int raster_bytes, int pixel_num, int * outraster)
|
||||
+eps_raster_print (RASTER handle, char * raster_p, int raster_bytes, int pixel_num, size_t * outraster)
|
||||
{
|
||||
EpsRaster * raster = (EpsRaster *) handle;
|
||||
EpsRasterPipeline * pipeline = NULL;
|
||||
diff --git a/src/raster/raster.h b/src/raster/raster.h
|
||||
index 9be0977..cc5054d 100644
|
||||
--- a/src/raster/raster.h
|
||||
+++ b/src/raster/raster.h
|
||||
@@ -143,7 +143,7 @@ typedef enum {
|
||||
} EpsRasterFetchStatus;
|
||||
|
||||
int eps_raster_init (RASTER *, EpsRasterOpt *, EpsRasterPipeline *);
|
||||
-int eps_raster_print (RASTER, char *, int, int, int *);
|
||||
+int eps_raster_print (RASTER, char *, int, int, size_t *);
|
||||
int eps_raster_fetch (RASTER, char *, int, int, EpsRasterFetchStatus *);
|
||||
int eps_raster_free (RASTER);
|
||||
|
||||
diff --git a/src/raster_to_epson.c b/src/raster_to_epson.c
|
||||
index 6e621c8..a0811d6 100644
|
||||
--- a/src/raster_to_epson.c
|
||||
+++ b/src/raster_to_epson.c
|
||||
@@ -33,7 +33,7 @@
|
||||
#include <cups/ppd.h>
|
||||
#include <cups/raster.h>
|
||||
|
||||
-#include "raster.h"
|
||||
+#include "raster-helper.h"
|
||||
#include "memory.h"
|
||||
#include "raster_to_epson.h"
|
||||
#include "pagemanager.h"
|
||||
@@ -75,7 +75,7 @@ static int page_no = 0;
|
||||
static int pageHeight = 0;
|
||||
#endif
|
||||
|
||||
-int rasterSource(char *buf, int bufSize)
|
||||
+size_t rasterSource(char *buf, int bufSize)
|
||||
{
|
||||
int readBytes = 0;
|
||||
if (JobCanceled == 0) {
|
|
@ -4,13 +4,13 @@ let
|
|||
in {
|
||||
mainline = libsForQt5.callPackage ./base.nix rec {
|
||||
pname = "yuzu-mainline";
|
||||
version = "844";
|
||||
version = "882";
|
||||
branchName = branch;
|
||||
src = fetchFromGitHub {
|
||||
owner = "yuzu-emu";
|
||||
repo = "yuzu-mainline";
|
||||
rev = "mainline-0-${version}";
|
||||
sha256 = "0vr1pqackvcb1sppfaqsibkm1agpdlg70lqfl5gcizkq9668gr12";
|
||||
sha256 = "17j845laxnaq50icwl32yisdivwcnwa59fxdr297yxrz4hmfzhxq";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
};
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -52,38 +52,31 @@ HEADER = (
|
|||
|
||||
|
||||
class VimEditor(pluginupdate.Editor):
|
||||
def generate_nix(self, plugins: List[Tuple[str, str, pluginupdate.Plugin]], outfile: str):
|
||||
sorted_plugins = sorted(plugins, key=lambda v: v[2].name.lower())
|
||||
def generate_nix(self, plugins: List[Tuple[pluginupdate.PluginDesc, pluginupdate.Plugin]], outfile: str):
|
||||
sorted_plugins = sorted(plugins, key=lambda v: v[0].name.lower())
|
||||
|
||||
with open(outfile, "w+") as f:
|
||||
f.write(HEADER)
|
||||
f.write(textwrap.dedent("""
|
||||
{ lib, buildVimPluginFrom2Nix, fetchFromGitHub }:
|
||||
{ lib, buildVimPluginFrom2Nix, fetchFromGitHub, fetchgit }:
|
||||
|
||||
final: prev:
|
||||
{"""
|
||||
))
|
||||
for owner, repo, plugin in sorted_plugins:
|
||||
if plugin.has_submodules:
|
||||
submodule_attr = "\n fetchSubmodules = true;"
|
||||
else:
|
||||
submodule_attr = ""
|
||||
for pdesc, plugin in sorted_plugins:
|
||||
|
||||
f.write(textwrap.indent(textwrap.dedent(
|
||||
repo = pdesc.repo
|
||||
src_nix = repo.as_nix(plugin)
|
||||
f.write(
|
||||
f"""
|
||||
{plugin.normalized_name} = buildVimPluginFrom2Nix {{
|
||||
pname = "{plugin.name}";
|
||||
version = "{plugin.version}";
|
||||
src = fetchFromGitHub {{
|
||||
owner = "{owner}";
|
||||
repo = "{repo}";
|
||||
rev = "{plugin.commit}";
|
||||
sha256 = "{plugin.sha256}";{submodule_attr}
|
||||
}};
|
||||
meta.homepage = "https://github.com/{owner}/{repo}/";
|
||||
src = {src_nix};
|
||||
meta.homepage = "{repo.uri}";
|
||||
}};
|
||||
"""
|
||||
), ' '))
|
||||
)
|
||||
f.write("\n}\n")
|
||||
print(f"updated {outfile}")
|
||||
|
||||
|
|
|
@ -252,6 +252,7 @@ hrsh7th/vim-vsnip
|
|||
hrsh7th/vim-vsnip-integ
|
||||
hsanson/vim-android
|
||||
hsitz/VimOrganizer
|
||||
https://git.sr.ht/~whynothugo/lsp_lines.nvim
|
||||
hura/vim-asymptote
|
||||
iamcco/coc-spell-checker
|
||||
iamcco/markdown-preview.nvim
|
||||
|
|
|
@ -959,8 +959,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "haskell";
|
||||
publisher = "haskell";
|
||||
version = "1.7.1";
|
||||
sha256 = "sha256-UWdj2J5z5cTUsfvlU++LRil0tEiAH2AFb1AwBsfMvoY=";
|
||||
version = "1.8.0";
|
||||
sha256 = "sha256-+k8XT2COe9Z8HvZvcrzfVuocRcxXBrVoNHDT/uKK7Hs=";
|
||||
};
|
||||
meta = with lib; {
|
||||
license = licenses.mit;
|
||||
|
|
|
@ -3,8 +3,8 @@ vscode-utils.buildVscodeMarketplaceExtension rec {
|
|||
mktplcRef = {
|
||||
name = "terraform";
|
||||
publisher = "hashicorp";
|
||||
version = "2.18.0";
|
||||
sha256 = "sha256-jQ4fwsAwuGDbfSb/qCV58ETtH+2e7zD/jGISGNYPxZk=";
|
||||
version = "2.19.0";
|
||||
sha256 = "sha256-k/fcEJuELz0xkwivSrP6Nxtz861BLq1wR2ZDMXVrvkY=";
|
||||
};
|
||||
|
||||
patches = [ ./fix-terraform-ls.patch ];
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
{ lib, stdenv, fetchurl, openssl, pkg-config, libnl
|
||||
, nixosTests
|
||||
, nixosTests, wpa_supplicant_gui
|
||||
, withDbus ? true, dbus
|
||||
, withReadline ? true, readline
|
||||
, withPcsclite ? true, pcsclite
|
||||
|
@ -113,6 +113,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
passthru.tests = {
|
||||
inherit (nixosTests) wpa_supplicant;
|
||||
inherit wpa_supplicant_gui; # inherits the src+version updates
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
|
|
|
@ -2,18 +2,7 @@
|
|||
|
||||
mkDerivation {
|
||||
pname = "wpa_gui";
|
||||
version = wpa_supplicant.version;
|
||||
|
||||
inherit (wpa_supplicant) src;
|
||||
|
||||
patches = [
|
||||
# Fix build with Inkscape 1.0
|
||||
# https://github.com/NixOS/nixpkgs/issues/86930
|
||||
(fetchpatch {
|
||||
url = "https://w1.fi/cgit/hostap/patch/?id=0388992905a5c2be5cba9497504eaea346474754";
|
||||
sha256 = "05hs74qawa433adripzhycm45g7yvxr6074nd4zcl4gabzp9hd30";
|
||||
})
|
||||
];
|
||||
inherit (wpa_supplicant) version src;
|
||||
|
||||
buildInputs = [ qtbase ];
|
||||
nativeBuildInputs = [ qmake inkscape imagemagick ];
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "udpt";
|
||||
version = "3.1.0";
|
||||
version = "3.1.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "naim94a";
|
||||
repo = "udpt";
|
||||
rev = "${pname}-${version}";
|
||||
sha256 = "1g6l0y5x9pdra3i1npkm474glysicm4hf2m01700ack2rp43vldr";
|
||||
sha256 = "sha256-G3LzbV3b1Y/2SPIBS1kZDuLuGF5gV/H1LFBRhevpdjU=";
|
||||
};
|
||||
|
||||
cargoSha256 = "0raym4zrapn3w0a98y9amyp2qh7swd73cjslsfgfzlr9w8vsb6zs";
|
||||
cargoSha256 = "sha256-ebLVyUB65fW8BWctxXnYxrnl/2IESd4YJXeiMsMXn9s=";
|
||||
|
||||
postInstall = ''
|
||||
install -D udpt.toml $out/share/udpt/udpt.toml
|
||||
|
|
|
@ -466,6 +466,8 @@ let
|
|||
inherit version;
|
||||
sha256 = "sha256-109FuBMXRU2W6YL9HFDm+1yZrCIjcorqh2RDOjn1ZvE=";
|
||||
};
|
||||
# sdist lacks tests
|
||||
doCheck = false;
|
||||
});
|
||||
|
||||
semver = super.semver.overridePythonAttrs(oldAttrs: rec {
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "s3ql";
|
||||
version = "3.8.0";
|
||||
version = "3.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
rev = "release-${version}";
|
||||
sha256 = "0a6ll5vs7faj1klfz3j674399qfbhy3blp3c5wwsqvcdkpcjcx11";
|
||||
sha256 = "0kk8jjb9zir4wfxv4zsa4ysj77322l73vddcx4y6czjq1j9jz9f2";
|
||||
};
|
||||
|
||||
checkInputs = [ which ] ++ (with python3Packages; [ cython pytest pytest-trio ]);
|
||||
|
|
|
@ -1,5 +1,11 @@
|
|||
{ lib
|
||||
, python3
|
||||
, pkgsCross
|
||||
, avrdude
|
||||
, dfu-programmer
|
||||
, dfu-util
|
||||
, gcc-arm-embedded
|
||||
, teensy-loader-cli
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
|
@ -30,6 +36,16 @@ python3.pkgs.buildPythonApplication rec {
|
|||
milc
|
||||
pygments
|
||||
pyusb
|
||||
] ++ [ # Binaries need to be in the path so this is in propagatedBuildInputs
|
||||
avrdude
|
||||
dfu-programmer
|
||||
dfu-util
|
||||
teensy-loader-cli
|
||||
gcc-arm-embedded
|
||||
pkgsCross.avr.buildPackages.binutils
|
||||
pkgsCross.avr.buildPackages.binutils.bintools
|
||||
pkgsCross.avr.buildPackages.gcc8
|
||||
pkgsCross.avr.libcCross
|
||||
];
|
||||
|
||||
# buildPythonApplication requires setup.py; the setup.py file crafted below
|
||||
|
@ -61,6 +77,6 @@ python3.pkgs.buildPythonApplication rec {
|
|||
- ... and many more!
|
||||
'';
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ bhipple babariviere ];
|
||||
maintainers = with maintainers; [ bhipple babariviere ekleog ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -6,12 +6,12 @@
|
|||
|
||||
buildPythonApplication rec {
|
||||
pname = "pass2csv";
|
||||
version = "0.3.1";
|
||||
version = "0.3.2";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "sha256-qY094A5F7W2exGcsS9AJuO5RrBcAn0cCrJquOc6zGZM=";
|
||||
sha256 = "03a11bd0b0905737f4adb21d87aa1653d84cc1d9b5dcfdfb8a29092245d65db8";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -18,7 +18,7 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "thermald";
|
||||
version = "2.4.7";
|
||||
version = "2.4.8";
|
||||
|
||||
outputs = [ "out" "devdoc" ];
|
||||
|
||||
|
@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
|
|||
owner = "intel";
|
||||
repo = "thermal_daemon";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-1vRIpX4qH9QbinzZr//u7D9CZ6cUHirhXwnUuQyCEdg=";
|
||||
sha256 = "sha256-Mup88vNS0iApwsZTdPnpXmkA0LNpSOzxBmbejcWIC+0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -65,7 +65,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = with lib; {
|
||||
description = "Thermal Daemon";
|
||||
homepage = "https://01.org/linux-thermal-daemon";
|
||||
homepage = "https://github.com/intel/thermal_daemon";
|
||||
changelog = "https://github.com/intel/thermal_daemon/blob/master/README.txt";
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = [ "x86_64-linux" "i686-linux" ];
|
||||
|
|
|
@ -3232,6 +3232,8 @@ with pkgs;
|
|||
|
||||
ifm = callPackage ../tools/graphics/ifm {};
|
||||
|
||||
iina = callPackage ../applications/video/iina { };
|
||||
|
||||
ink = callPackage ../tools/misc/ink { };
|
||||
|
||||
inklecate = callPackage ../development/compilers/inklecate {};
|
||||
|
@ -32209,6 +32211,8 @@ with pkgs;
|
|||
|
||||
otter = callPackage ../applications/science/logic/otter {};
|
||||
|
||||
otto-matic = callPackage ../games/otto-matic { };
|
||||
|
||||
picosat = callPackage ../applications/science/logic/picosat {};
|
||||
|
||||
libpoly = callPackage ../applications/science/logic/poly {};
|
||||
|
@ -32697,6 +32701,8 @@ with pkgs;
|
|||
|
||||
epson_201207w = callPackage ../misc/drivers/epson_201207w { };
|
||||
|
||||
epson-201401w = callPackage ../misc/drivers/epson-201401w { };
|
||||
|
||||
epson-201106w = callPackage ../misc/drivers/epson-201106w { };
|
||||
|
||||
epson-workforce-635-nx625-series = callPackage ../misc/drivers/epson-workforce-635-nx625-series { };
|
||||
|
|
Loading…
Reference in a new issue