Merge master into staging-next

This commit is contained in:
github-actions[bot] 2021-11-11 12:01:26 +00:00 committed by GitHub
commit c5b522e351
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 185 additions and 106 deletions

View file

@ -58,20 +58,12 @@ stdenv.mkDerivation rec {
# Our launchers that use paths at /run/current-system/sw/bin
mkdir -p $out/etc/skel/.config/plank/dock1
cp -avr ${./launchers} $out/etc/skel/.config/plank/dock1/launchers
# Whitelist wingpanel indicators to be used in the greeter
# https://github.com/elementary/greeter/blob/fc19752f147c62767cd2097c0c0c0fcce41e5873/debian/io.elementary.greeter.whitelist
# wingpanel 2.3.2 renamed this to .allowed to .forbidden
# https://github.com/elementary/wingpanel/pull/326
install -D ${./io.elementary.greeter.allowed} $out/etc/wingpanel.d/io.elementary.greeter.allowed
'';
postFixup = ''
# https://github.com/elementary/default-settings/issues/55
rm -rf $out/share/plymouth
rm -rf $out/share/cups
rm -rf $out/share/applications
rm -r $out/share/cups
rm -r $out/share/applications
'';
passthru = {

View file

@ -1,6 +0,0 @@
liba11y.so
libbluetooth.so
libkeyboard.so
libnetwork.so
libpower.so
libsession.so

View file

@ -76,7 +76,7 @@ stdenv.mkDerivation (args // {
preConfigure = optionalString (!lib.versionAtLeast version "4.04") ''
CAT=$(type -tp cat)
sed -e "s@/bin/cat@$CAT@" -i config/auto-aux/sharpbang
'' + optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
'' + optionalString (stdenv.isDarwin && !lib.versionAtLeast version "4.13") ''
# Do what upstream does by default now: https://github.com/ocaml/ocaml/pull/10176
# This is required for aarch64-darwin, everything else works as is.
AS="${stdenv.cc}/bin/cc -c" ASPP="${stdenv.cc}/bin/cc -c"

View file

@ -9,12 +9,14 @@
, requirements-parser
, setuptools
, toml
, types-setuptools
, types-toml
, tox
}:
buildPythonPackage rec {
pname = "cyclonedx-python-lib";
version = "0.10.2";
version = "0.11.0";
format = "pyproject";
disabled = pythonOlder "3.6";
@ -23,7 +25,7 @@ buildPythonPackage rec {
owner = "CycloneDX";
repo = pname;
rev = "v${version}";
sha256 = "11sbnlbxighmmygrlgg4d31y70067pxzjsirwicaslfq95wgdlav";
sha256 = "sha256-FNEtVTcmVyhAri55GjlzQbg21YByAJjmKQvWaYh3xRw=";
};
nativeBuildInputs = [
@ -36,6 +38,8 @@ buildPythonPackage rec {
requirements-parser
setuptools
toml
types-setuptools
types-toml
];
checkInputs = [

View file

@ -16,7 +16,7 @@ buildPythonPackage rec {
owner = "deactivated";
repo = "python-iso3166";
rev = version;
sha256 = "0zs9za9dr2nl5srxir08yibmp6nffcapmzala0fgh8ny7y6rafrx";
sha256 = "sha256-/y7c2qSA6+WKUP9YTSaMBjBxtqAuF4nB3MKvL5P6vL0=";
};
checkInputs = [

View file

@ -17,14 +17,16 @@
buildPythonPackage rec {
pname = "pymysensors";
version = "0.21.0";
version = "0.22.0";
format = "setuptools";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
owner = "theolind";
repo = pname;
rev = version;
sha256 = "1k75gwvyzslyjr3cdx8b74fb302k2i7bda4q92rb75rhgp4gch55";
sha256 = "sha256-tDetHSpA5ZRvJoThI1zY6NPiDJHfWZbiMM5AF+xCNgk=";
};
propagatedBuildInputs = [
@ -44,7 +46,9 @@ buildPythonPackage rec {
pytestCheckHook
];
pythonImportsCheck = [ "mysensors" ];
pythonImportsCheck = [
"mysensors"
];
meta = with lib; {
description = "Python API for talking to a MySensors gateway";

View file

@ -12,9 +12,10 @@
}:
buildPythonPackage rec {
pname = "PyRMVtransport";
pname = "pyrmvtransport";
version = "0.3.2";
format = "pyproject";
disabled = pythonOlder "3.6";
src = fetchFromGitHub {
@ -34,14 +35,16 @@ buildPythonPackage rec {
lxml
];
pythonImportsCheck = [ "RMVtransport" ];
checkInputs = [
pytestCheckHook
pytest-asyncio
pytest-httpx
];
pythonImportsCheck = [
"RMVtransport"
];
meta = with lib; {
homepage = "https://github.com/cgtobi/PyRMVtransport";
description = "Get transport information from opendata.rmv.de";

View file

@ -1,23 +1,32 @@
{ lib, fetchFromGitHub
, python, buildPythonPackage, isPy27
, pygame, pyglet, pysdl2, six
{ lib
, buildPythonPackage
, fetchFromGitHub
, pygame
, pyglet
, pysdl2
, pytestCheckHook
, pythonOlder
}:
buildPythonPackage rec {
pname = "pytmx";
version = "3.27";
version = "3.30";
format = "setuptools";
disabled = isPy27;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "bitcraft";
repo = "PyTMX";
# Release was not tagged.
rev = "5bb094c45e648d1de6c9ba8d8c8f31f7b83478e1";
sha256 = "0kpd39sr2ggwzh7nd3f5801mgwm57rzrrkqcgbcypdm8l2ayga3b";
rev = version;
sha256 = "sha256-d6VPmRdqUO6YhkOYYeXOEcrli/35IFkxK73AcZYHixw=";
};
propagatedBuildInputs = [ pygame pyglet pysdl2 six ];
propagatedBuildInputs = [
pygame
pyglet
pysdl2
];
pythonImportsCheck = [
"pytmx.pytmx"
@ -26,11 +35,14 @@ buildPythonPackage rec {
"pytmx.util_pysdl2"
];
checkPhase = ''
# Change into the test directory due to a relative resource path.
cd tests/pytmx
${python.interpreter} -m unittest test_pytmx
'';
checkInputs = [
pytestCheckHook
];
disabledTests = [
# AssertionError on the property name
"test_contains_reserved_property_name"
];
meta = with lib; {
homepage = "https://github.com/bitcraft/PyTMX";

View file

@ -1,19 +1,23 @@
{ lib
, buildPythonPackage
, fetchFromGitHub
, zeep
, pytestCheckHook
, pythonOlder
, zeep
}:
buildPythonPackage rec {
pname = "total-connect-client";
version = "2021.8.3";
version = "2021.11.2";
format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "craigjmidwinter";
repo = "total-connect-client";
rev = version;
sha256 = "sha256-2iTH/Him4iMZadkmBR8Rwlt3RCqDXzR6ZqNHciNiHIk=";
sha256 = "sha256-JXau+NmulnZ0gg2XsXD9EFv3j2FBMqVqzpT1XGvMZuA=";
};
propagatedBuildInputs = [
@ -33,7 +37,9 @@ buildPythonPackage rec {
"tests_request"
];
pythonImportsCheck = [ "total_connect_client" ];
pythonImportsCheck = [
"total_connect_client"
];
meta = with lib; {
description = "Interact with Total Connect 2 alarm systems";

View file

@ -0,0 +1,27 @@
{ lib
, buildPythonPackage
, fetchPypi
}:
buildPythonPackage rec {
pname = "types-setuptools";
version = "57.4.2";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "1y0vx949wx5w4ra854ykwvgmdcwsb6v7jk29m4x1l79857sa16al";
};
# Module doesn't have tests
doCheck = false;
pythonImportsCheck = [ "setuptools-stubs" ];
meta = with lib; {
description = "Typing stubs for setuptools";
homepage = "https://github.com/python/typeshed";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -0,0 +1,27 @@
{ lib
, buildPythonPackage
, fetchPypi
}:
buildPythonPackage rec {
pname = "types-toml";
version = "0.10.1";
format = "setuptools";
src = fetchPypi {
inherit pname version;
sha256 = "1jqh0vki1hccj391gnxpblim429sj56npgq2z749f8v9ay6qy7sw";
};
# Module doesn't have tests
doCheck = false;
pythonImportsCheck = [ "toml-stubs" ];
meta = with lib; {
description = "Typing stubs for toml";
homepage = "https://github.com/python/typeshed";
license = licenses.asl20;
maintainers = with maintainers; [ fab ];
};
}

View file

@ -56,13 +56,13 @@ with py.pkgs;
buildPythonApplication rec {
pname = "checkov";
version = "2.0.556";
version = "2.0.563";
src = fetchFromGitHub {
owner = "bridgecrewio";
repo = pname;
rev = version;
sha256 = "sha256-hEh7uqIvqkG1X9pxJFoI4dQngJ6nZXIAUR1TmXa2kZE=";
sha256 = "sha256-f1rD1Xal/86q7hRR+6XneiVEYGH1TFHVXzFLOQDO17Y=";
};
nativeBuildInputs = with py.pkgs; [

View file

@ -5,13 +5,13 @@
buildGoPackage rec {
pname = "tfsec";
version = "0.58.15";
version = "0.59.0";
src = fetchFromGitHub {
owner = "aquasecurity";
repo = pname;
rev = "v${version}";
sha256 = "102f984x6hpfjcshqd6s26c0lxjyr8rq6q4bwh9ymvrsxsylj3ng";
sha256 = "sha256-j/JHHkS4mIuDv76HtIFbrf2VRqGINyB9OODaM+fJsJc=";
};
goPackagePath = "github.com/aquasecurity/tfsec";

View file

@ -1,28 +1,36 @@
{ fetchFromGitHub, installShellFiles, lib, stdenv, rustPlatform, Security }:
{ lib
, rustPlatform
, fetchFromGitHub
, installShellFiles
, pkg-config
, bzip2
, stdenv
, Security
}:
rustPlatform.buildRustPackage rec {
pname = "pactorio";
version = "0.5.1";
version = "0.5.2";
src = fetchFromGitHub {
owner = "figsoda";
repo = pname;
rev = "v${version}";
sha256 = "07h9hywz0pc29411myhxjq6pks4p6q6czbqjv7fxf3xkb1mg9grq";
sha256 = "sha256-tRmchXDg8flvByjg6GLwwdwQgp/5NdZIgnjYgPLcLP8=";
};
cargoSha256 = "1rac2s36j88vm231aji8d0ndfbaa2gzxwsrxrvsi0zp9cqisc6rh";
cargoSha256 = "sha256-FIn+6wflDAjshP2Vz/rXRTrrjPQFW63XtXo8hBHMdkg=";
nativeBuildInputs = [ installShellFiles ];
buildInputs = lib.optional stdenv.isDarwin Security;
nativeBuildInputs = [ installShellFiles pkg-config ];
preFixup = ''
buildInputs = [ bzip2 ] ++ lib.optional stdenv.isDarwin Security;
postInstall = ''
completions=($releaseDir/build/pactorio-*/out/completions)
installShellCompletion ''${completions[0]}/pactorio.{bash,fish}
installShellCompletion --zsh ''${completions[0]}/_pactorio
installShellCompletion $completions/pactorio.{bash,fish} --zsh $completions/_pactorio
'';
GEN_COMPLETIONS = "1";
GEN_COMPLETIONS = 1;
meta = with lib; {
description = "Mod packager for factorio";

View file

@ -2,7 +2,7 @@
let
# having the full version string here makes it easier to update
modDirVersion = "5.14.15-zen1";
modDirVersion = "5.15.1-zen1";
parts = lib.splitString "-" modDirVersion;
version = lib.elemAt parts 0;
suffix = lib.elemAt parts 1;
@ -19,7 +19,7 @@ buildLinux (args // {
owner = "zen-kernel";
repo = "zen-kernel";
rev = "v${modDirVersion}";
sha256 = "sha256-2nShtZodkPBCbGdK0dI+RGTRS5/JOUP/7//L//MJI4c=";
sha256 = "sha256-mDAwsqLR55WFaPKO1SXZuxeuaFzprMY4ryeEUdCqKGU=";
};
structuredExtraConfig = with lib.kernel; {

View file

@ -2,7 +2,7 @@
# Do not edit!
{
version = "2021.11.0";
version = "2021.11.2";
components = {
"abode" = ps: with ps; [ abodepy ];
"accuweather" = ps: with ps; [ accuweather ];
@ -713,7 +713,7 @@
"ripple" = ps: with ps; [ ]; # missing inputs: python-ripple-api
"risco" = ps: with ps; [ pyrisco ];
"rituals_perfume_genie" = ps: with ps; [ pyrituals ];
"rmvtransport" = ps: with ps; [ PyRMVtransport ];
"rmvtransport" = ps: with ps; [ pyrmvtransport ];
"rocketchat" = ps: with ps; [ ]; # missing inputs: rocketchat-API
"roku" = ps: with ps; [ rokuecp ];
"roomba" = ps: with ps; [ roombapy ];

View file

@ -127,7 +127,7 @@ let
extraBuildInputs = extraPackages py.pkgs;
# Don't forget to run parse-requirements.py after updating
hassVersion = "2021.11.0";
hassVersion = "2021.11.2";
in with py.pkgs; buildPythonApplication rec {
pname = "homeassistant";
@ -144,7 +144,7 @@ in with py.pkgs; buildPythonApplication rec {
owner = "home-assistant";
repo = "core";
rev = version;
sha256 = "1bhm2ahc9fvh3czhfim3la0vdwdis2r86fa0qldqpnh11v25hb2s";
sha256 = "13212h67ijvir8rlr4gpd2945xx5f5c2lj3bwg7ncw55r23h6hma";
};
# leave this in, so users don't have to constantly update their downstream patch handling

View file

@ -4,11 +4,11 @@ buildPythonPackage rec {
# the frontend version corresponding to a specific home-assistant version can be found here
# https://github.com/home-assistant/home-assistant/blob/master/homeassistant/components/frontend/manifest.json
pname = "home-assistant-frontend";
version = "20211103.0";
version = "20211108.0";
src = fetchPypi {
inherit pname version;
sha256 = "sha256-gny97mYHNwQ8KderebfLALCbIyddbwRoD5Ux6ahDdVk=";
sha256 = "sha256-cMCjBhtPi73AB9bplUH8ZNQMt5WJ/NZFW4qLuHHo3+g=";
};
# there is nothing to strip in this package

View file

@ -7,9 +7,10 @@ let archString = if stdenv.isAarch64 then "arm64"
platformString = if stdenv.isDarwin then "osx"
else if stdenv.isLinux then "linux"
else throw "unsupported platform";
platformSha = if stdenv.isDarwin then "0w44ws8b6zfixf7xz93hmplqsx18279n9x8j77y4rbzs13fldvsn"
else if (stdenv.isLinux && stdenv.isx86_64) then "sha256-SOZn7CGLu9x+xhQwjgm0SL7sKDODLwHRpzi7tMdRBAM="
else if (stdenv.isLinux && stdenv.isAarch64) then "1axbi4kmb1ydys7c45jhp729w1srid3c8jgivb4bdmdp56rf6h32"
platformSha = if (stdenv.isDarwin && stdenv.isx86_64) then "sha256-h5zjn8wtgHmsJFiGq1rja6kZTZj3Q72W2kH3AexRDQs="
else if (stdenv.isDarwin && stdenv.isAarch64) then "sha256-NHM9ZUpBJb59Oq0Ke7DcvaN+bZ9MjSpXBRu5Ng9OVZ0="
else if (stdenv.isLinux && stdenv.isx86_64) then "sha256-gRebkDY0WOKabuLd/WNMoRPL7oGQJtHELFNe+sQ0TwA="
else if (stdenv.isLinux && stdenv.isAarch64) then "sha256-bUacA4DwjDNlIG7yooXxUGL9AysAogNWuQDvcTqo1sE="
else throw "unsupported platform";
platformLdLibraryPath = if stdenv.isDarwin then "DYLD_FALLBACK_LIBRARY_PATH"
else if stdenv.isLinux then "LD_LIBRARY_PATH"
@ -19,7 +20,7 @@ let archString = if stdenv.isAarch64 then "arm64"
in
stdenv.mkDerivation rec {
pname = "powershell";
version = "7.1.4";
version = "7.2.0";
src = fetchzip {
url = "https://github.com/PowerShell/PowerShell/releases/download/v${version}/powershell-${version}-${platformString}-${archString}.tar.gz";
@ -50,8 +51,6 @@ stdenv.mkDerivation rec {
patchelf --replace-needed libcrypto${ext}.1.0.0 libcrypto${ext}.1.1 $pslibs/libmi.so
patchelf --replace-needed libssl${ext}.1.0.0 libssl${ext}.1.1 $pslibs/libmi.so
'' + lib.optionalString (!stdenv.isDarwin) ''
# Remove liblttng-ust from dependencies once
# https://github.com/PowerShell/PowerShell/pull/14688 is in a release
patchelf --replace-needed liblttng-ust${ext}.0 liblttng-ust${ext}.1 $pslibs/libcoreclrtraceptprovider.so
'' + ''
@ -74,7 +73,7 @@ stdenv.mkDerivation rec {
description = "Powerful cross-platform (Windows, Linux, and macOS) shell and scripting language based on .NET";
homepage = "https://github.com/PowerShell/PowerShell";
maintainers = with maintainers; [ yrashk srgom p3psi ];
platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux"];
platforms = [ "x86_64-darwin" "x86_64-linux" "aarch64-linux" "aarch64-darwin" ];
license = with licenses; [ mit ];
};

View file

@ -20,12 +20,12 @@ buildPythonPackage rec {
# The websites yt-dlp deals with are a very moving target. That means that
# downloads break constantly. Because of that, updates should always be backported
# to the latest stable release.
version = "2021.10.22";
version = "2021.11.10.1";
src = fetchPypi {
inherit pname;
version = builtins.replaceStrings [ ".0" ] [ "." ] version;
sha256 = "sha256-okuWZr0iNBSeTajE8Wu45fdGwpQo0S7gT8HBG1JHowc=";
sha256 = "f0ad6ae2e2838b608df2fd125f2a777a7ad832d3e757ee6d4583b84b21e44388";
};
propagatedBuildInputs = [ websockets mutagen ]

View file

@ -5,13 +5,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "theharvester";
version = "4.0.0";
version = "4.0.2";
src = fetchFromGitHub {
owner = "laramies";
repo = pname;
rev = version;
sha256 = "02jhk34znpvq522pqr3x4c0rljw37x62znwycijf1zx81dpbn4rm";
sha256 = "sha256-jG0uVfeAfbX809XTUhoSpYdh2i42NoGzortv96dWEAs=";
};
propagatedBuildInputs = with python3.pkgs; [
@ -27,6 +27,7 @@ python3.pkgs.buildPythonApplication rec {
fastapi
lxml
netaddr
orjson
plotly
pyppeteer
pyyaml

View file

@ -26,16 +26,16 @@ GEM
ffi (1.15.4)
get_process_mem (0.2.7)
ffi (~> 1.0)
i18n (1.8.10)
i18n (1.8.11)
concurrent-ruby (~> 1.0)
minitest (5.14.4)
nokogiri (1.12.4-x86_64-linux)
nokogiri (1.12.5-x86_64-linux)
racc (~> 1.4)
opt_parse_validator (1.9.5)
activesupport (>= 5.2, < 6.2.0)
addressable (>= 2.5, < 2.9)
public_suffix (4.0.6)
racc (1.5.2)
racc (1.6.0)
ruby-progressbar (1.11.0)
sys-proctable (1.2.6)
ffi
@ -44,12 +44,12 @@ GEM
tzinfo (2.0.4)
concurrent-ruby (~> 1.0)
webrick (1.7.0)
wpscan (3.8.19)
wpscan (3.8.20)
cms_scanner (~> 0.13.6)
xmlrpc (0.3.2)
webrick
yajl-ruby (1.4.1)
zeitwerk (2.4.2)
zeitwerk (2.5.1)
PLATFORMS
x86_64-linux

View file

@ -80,20 +80,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a";
sha256 = "0vdd1kii40qhbr9n8qx71k2gskq6rkl8ygy8hw5hfj8bb5a364xf";
type = "gem";
};
version = "1.8.10";
};
minitest = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
type = "gem";
};
version = "5.14.4";
version = "1.8.11";
};
mini_portile2 = {
groups = ["default"];
@ -105,16 +95,26 @@
};
version = "2.6.1";
};
minitest = {
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "19z7wkhg59y8abginfrm2wzplz7py3va8fyngiigngqvsws6cwgl";
type = "gem";
};
version = "5.14.4";
};
nokogiri = {
dependencies = ["mini_portile2" "racc"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1sad16idsxayhaaswc3bksii1ydiqyzikl7y0ng35cn7w4g1dv3z";
sha256 = "1v02g7k7cxiwdcahvlxrmizn3avj2q6nsjccgilq1idc89cr081b";
type = "gem";
};
version = "1.12.4";
version = "1.12.5";
};
opt_parse_validator = {
dependencies = ["activesupport" "addressable"];
@ -142,10 +142,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
sha256 = "0la56m0z26j3mfn1a9lf2l03qx1xifanndf9p3vx1azf6sqy7v9d";
type = "gem";
};
version = "1.5.2";
version = "1.6.0";
};
ruby-progressbar = {
groups = ["default"];
@ -206,10 +206,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "0gv5ym8sxr9901z55d0dakc7af954rp2asnd1a68arjvfyj96sq3";
sha256 = "07mzbds1j0a1y6jw4swgc4d7kcflkycdk3ivdw3lxaqaqvbfs35p";
type = "gem";
};
version = "3.8.19";
version = "3.8.20";
};
xmlrpc = {
dependencies = ["webrick"];
@ -237,9 +237,9 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
sha256 = "1746czsjarixq0x05f7p3hpzi38ldg6wxnxxw74kbjzh1sdjgmpl";
sha256 = "18l4r6layck0d80ydc692mv1lxak5xbf6w2paj1x7m2ggbggzxgj";
type = "gem";
};
version = "2.4.2";
version = "2.5.1";
};
}

View file

@ -1058,9 +1058,7 @@ let
ppx_bap = callPackage ../development/ocaml-modules/ppx_bap { };
ppx_bitstring = callPackage ../development/ocaml-modules/bitstring/ppx.nix {
ppxlib = ppxlib.override { version = "0.22.0"; };
};
ppx_bitstring = callPackage ../development/ocaml-modules/bitstring/ppx.nix { };
ppxfind = callPackage ../development/ocaml-modules/ppxfind { };

View file

@ -6949,7 +6949,7 @@ in {
pyRFC3339 = callPackage ../development/python-modules/pyrfc3339 { };
PyRMVtransport = callPackage ../development/python-modules/PyRMVtransport { };
pyrmvtransport = callPackage ../development/python-modules/pyrmvtransport { };
Pyro4 = callPackage ../development/python-modules/pyro4 { };
@ -9474,6 +9474,10 @@ in {
types-requests = callPackage ../development/python-modules/types-requests { };
types-setuptools = callPackage ../development/python-modules/types-setuptools { };
types-toml = callPackage ../development/python-modules/types-toml { };
typesentry = callPackage ../development/python-modules/typesentry { };
typesystem = callPackage ../development/python-modules/typesystem { };