jiebi/CodeConvo huggingface dataset:
Change:
pidgin can't play sound by itself. It can run aplay or similar to play its sound files, but out of the box it silently fails to play notification sounds. afaict pidgin requires and installs gstreamer but isn't set up to find what it needs at runtime. if i manually set GSTPLUGINSYSTEM_PATH to a value cribbed from some other package's wrapper script (like firefox), it successfully emits sound. Notification sounds play out of the box Notification sounds do not play in a fairly empty user environment (no desktop environment or anything fancy) go to Tools Preferences Sounds press the "Preview" button at the bottom
This is probably a duplicate of , but that isn't important...
Please check if fixes your issue.
Yeah, that fixes it. Thank you!

Discussion:
# TODO add plugins having various licenses, see http://www.vamp-plugins.org/download.html <del> { stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo, libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate, libsndfile, makeWrapper, pulseaudio, qt4, redland, rubberband, vampSDK </del> <ins> { stdenv, fetchurl, alsaLib, bzip2, fftw, jackaudio, libX11, liblo , libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate , libsndfile, makeWrapper, pkgconfig, pulseaudio, qt4, redland , rubberband, vampSDK </ins> }: <del> stdenv.mkDerivation { name = "sonic-visualiser-1.8"; </del> <ins> stdenv.mkDerivation rec { name = "sonic-visualiser-${version}"; version = "1.9"; </ins> src = fetchurl { <del> url = http://downloads.sourceforge.net/sv1/sonic-visualiser-1.8.tar.gz; sha256 = "16ik6q9n92wljvnqcv7hyzb9v3yp3ixxp6df9kasf53fii973dh7"; </del> <ins> url = "http://code.soundsoftware.ac.uk/attachments/download/194/${name}.tar.gz"; sha256 = "00igf7j6s8xfyxnlkbqma0yby9pknxqzy8cmh0aw95ix80cw56fq"; </ins> }; buildInputs = [ libsndfile qt4 fftw /* should be fftw3f ??*/ bzip2 librdf rubberband libsamplerate vampSDK alsaLib librdf_raptor librdf_rasqal redland <ins> pkgconfig </ins> # optional jackaudio # portaudio

description = "View and analyse contents of music audio files"; homepage = http://www.sonicvisualiser.org/; license = "GPLv2"; <del> maintainers = [ stdenv.lib.maintainers.marcweber stdenv.lib.maintainers.goibhniu ]; </del> <ins> maintainers = [ stdenv.lib.maintainers.marcweber stdenv.lib.maintainers.goibhniu ]; </ins> platforms = stdenv.lib.platforms.linux; }; }
Change:
crashes as is fails to find the path Steps to reproduce the behavior: shows some info Add any other context about the problem here. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. -- Please run and paste the result. Maintainer information:

Discussion:
<del> { python3Packages, fetchFromGitHub, lib, yubikey-personalization, libu2f-host, libusb1 }: </del> <ins> { python3Packages, fetchFromGitHub, lib, yubikey-personalization, libu2f-host, libusb1, procps }: </ins> python3Packages.buildPythonPackage rec { pname = "yubikey-manager";

sha256 = "sha256:0ycp7k6lkxzqwkc16fifhyqaqi7hl3351pwddsn18r5l83jnzdn2"; }; <ins> postPatch = '' substituteInPlace "ykman/pcsc/__init__.py"  --replace '/usr/bin/pkill' '${procps}/bin/pkill' ''; </ins> format = "pyproject"; nativeBuildInputs = with python3Packages; [ poetry-core ];
Change:
When running autokey it does not work (it errors). Steps to reproduce the behavior: the package from nixpkgs. in the terminal. The program should work. This is the error message: After searching through the autokey repo, I believe the X protocol errors can be safely ignored. The important part is the final error (about GSettings schemas). Autokey was last updated 2 years ago, it's quite out of date. I haven't tested if the latest version fixes this problem or not. Also, it seems that the program is missing, only / / are installed. <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. -- (doesn't seem to exist anymore) Maintainer information:
Autokey qt was hard to get working so I chose to delete it during the build the gtk should work since This pr and I also updated autokey in it
Strange, I am using version 0.95.10, but I still get the error. What desktop environment are you using?
Sway, I'll try in a fresh kde vm later
I marked this as stale due to inactivity. &rarr;

Discussion:
# Tests appear to be broken with import errors within the project structure doCheck = false; <del> nativeBuildInputs = [ wrapGAppsHook ]; </del> <ins> nativeBuildInputs = [ wrapGAppsHook gobject-introspection ]; </ins> buildInputs = [ gobject-introspection

pygobject3 ]; <del> dontWrapGapps = true; pythonPath = with python3Packages; requiredPythonModules [ dbus-python xlib pygobject3 ]; </del> postInstall = '' <del> rm $out/bin/autokey-qt buildPythonPath "$out $pythonPath" makeWrapperArgs+=( "''${gappsWrapperArgs[@]}" # for autokey-shell ModuleNotFoundError: No module named 'autokey' --prefix "PYTHONPATH" ":" "$out/lib/${python3Packages.python.libPrefix}/site-packages" --prefix "PYTHONPATH" ":" "$program_PYTHONPATH" ) </del> <ins> # remove Qt version which we currently do not support rm $out/bin/autokey-qt $out/share/applications/autokey-qt.desktop </ins> ''; meta = {
Change:
was introduced via , fixing the tarball in wasn't enough.
Are you able to add whichever dependencies are needed?, I do not have a darwin system so i cannot test it myself.

Discussion:
# do not use "''${qemu_kvm}/bin/qemu-kvm" to avoid bound VMs to particular qemu derivations substituteInPlace src/lxc/lxc_conf.c  --replace 'lxc_path,' '"/run/libvirt/nix-emulators/libvirt_lxc",' <ins> substituteInPlace build-aux/meson.build  --replace "gsed" "sed"  --replace "gmake" "make"  --replace "ggrep" "grep" </ins> patchShebangs . '' + (lib.concatStringsSep "n" (lib.mapAttrsToList patchBuilder overrides));
Change:
Project description Provides status information for river. Useful for bars. Metadata source URL: license: mit platforms: linux

Discussion:
<ins> { lib, rustPlatform, fetchFromGitLab }: rustPlatform.buildRustPackage rec { pname = "ristate"; version = "unstable-2021-09-10"; src = fetchFromGitLab { owner = "snakedye"; repo = pname; rev = "34dfd0a0bab5b36df118d8da3956fd938c625b15"; sha256 = "sha256-CH9DZ/7Bhbe6qKg1Nbj1rA9SzIsqVlBJg51XxAh0XnY="; }; cargoSha256 = "sha256-HTfRWvE3m7XZhZDj5bEkrQI3pD6GNiKd2gJtMjRQ8Rw="; meta = with lib; { description = "A river-status client written in Rust"; homepage = "https://gitlab.com/snakedye/ristate"; license = licenses.mit; maintainers = with maintainers; [ kranzes ]; }; } </ins>

riscv-pk = callPackage ../misc/riscv-pk { }; <ins> ristate = callPackage ../tools/misc/ristate { }; </ins> roccat-tools = callPackage ../os-specific/linux/roccat-tools { }; rtsp-simple-server = callPackage ../servers/rtsp-simple-server { };
Change:
(from ) is a GNOME extension which searches for the package in Because it can't detect the installed package it sends a notification that the package must be installed, and subsequently does not inhibit the default gestures provided by the package. Also, there is no built-in way to tell it to use another path. Steps to reproduce the behavior: the and (Please see additional context) packages the X11 Gestures extension The extension must recognize the actual path for in and work properly Since the package in the repos is extremely outdated (v1.1.1), I am using an to install the latest version v2.0.11 (see for updating the package in the repos). Also, may be relevant Extensions maintainer Creator of the extension and
I'll see how difficult it is to fix the path. However, I am reluctant to do custom dependencies patches, so I'd block this on .
I don't think there are any custom dependency patches required (it is just an extension, and apart from inhibiting the default gestures, it works properly as is).
I think is where it searches for the system config, to determine if the package is installed EDIT: Confirmed that editing and replacing with path in fixes the issue
Why ? Wouldn't it be better on ? Has anyone done this patch? Let's do it?
That should be the best thing to do. I've tried to patch the extension using , but for some reason it doesn't seem to work, and I'm pretty new to Nix, so I've just left it for the time-being
Ops, forgot to notify it here. I fixed this by following the . Both the GNOME extension and Touchégg use the env var to find the system configuration: The same applies for the user config with : A NixOS maintainer suggested this fix.
Thanks a lot! seems to have updated the extension to the version which has the fixes, so I'll close this issue
I think that the needs to be set in the package to point to the right path. Not sure if that work is done though, since I'm not a NixOS user...
Still i get it ! The gestures works with default touchegg gestures on the same time. Switching to next workspace and snap window to half side screen !
I made a workaround. I created a blank . So the extension managed to populate the file with its gestures and now I only have the extension gestures. But the "Not installed" alert still persist.
My conf dirs: It's not in any of these places. It's in
In that case you'd need to add at the end of . However, I'm not sure what's the NixOS way of doing it. I'm sure there is a way to fix this in the package.
Ok. Thanks!
help us with your review on

Discussion:
, ddcutil , gjs , xprop <ins> , touchegg </ins> }: let # Helper method to reduce redundancy

meta.maintainers = with lib.maintainers; [ rhoriguchi ]; })) <ins> (patchExtension "x11gestures@joseexposito.github.io" (old: { # Extension can't find Touchegg # https://github.com/NixOS/nixpkgs/issues/137621 postPatch = '' substituteInPlace "src/touchegg/ToucheggConfig.js"  --replace "GLib.build_filenamev([GLib.DIR_SEPARATOR_S, 'usr', 'share', 'touchegg', 'touchegg.conf'])" "'${touchegg}/share/touchegg/touchegg.conf'" ''; })) </ins> ]
Change:
Seems like some dependency versions diverged?
Hydra agrees it started failing in in August: Cc Missing sounds like a underlinking. Trying to bisect.
Was not able to get to exact commit and got a bunch: There are only 'skip'ped commits left to test. The first bad commit could be any of: (patch tweak, unlikely) (output tweak, maybe?) (patch tweak, unlikely) (kde-frameworks upgrade, likely)
probably fixed it upstream.
Let's try to fix it with
The build is still broken for me, there are some linking issues.
Perhaps the fix did not yet reach channel you are using?
Unstable via flakes.
I am not familiar with flakes. If it's then it would make sense as change did not reach there yet. If you can find commit version it bases on (maybe via ) we can match it's state.

Discussion:
<del> { mkDerivation, lib, fetchurl, extra-cmake-modules, kdoctools </del> <ins> { mkDerivation, lib, fetchpatch, fetchurl, extra-cmake-modules, kdoctools </ins> , boost, qtwebkit, qtx11extras, shared-mime-info , breeze-icons, kactivities, karchive, kcodecs, kcompletion, kconfig, kconfigwidgets , kcoreaddons, kdbusaddons, kdiagram, kguiaddons, khtml, ki18n

sha256 = "0iqi6z6gkck2afgy200dacgcspq7i7887alcj0pklm08hbmsdy5i"; }; <ins> patches = [ # Fix fontconfig underlinking: https://github.com/NixOS/nixpkgs/issues/137794 # Can be dropped on next release. (fetchpatch { name = "fix-fontconfig-linking.patch"; url = "https://github.com/KDE/calligra/commit/62f510702ef9c34ac50f8d8601a4290ab558464c.patch"; sha256 = "11dzrp9q05dmvnwp4vk4ihcibqcf4xyr0ijscpi716cyy730flma"; excludes = [ "CMakeLists.txt" ]; }) ]; </ins> nativeBuildInputs = [ extra-cmake-modules kdoctools ]; buildInputs = [
Change:
The contains both radio communication software (for signal processing / software radio, e.g ) and internet music radio-players (e.g. . These belong to separate domains (hobbyist vs. end-user) and should therefore be separated. I believe it would make sense to put all the music radio players into the audio folder, as it already contains a few radio-players (e.g. , which --confusingly-- is also the name of a commonly used radio communication frequency) I would be willing to sift through the section and find all misplaced packages, but I don't know how to work with github and create pull requests.. :innocent:
Thank you! That looks like a good explanatory guide. I guess that leaves me with no choice to get my hands dirty then. (Might take me a while to get started, so only ping me if you didn't hear from in a week.) As for why I couldn't search for this guide myself?.. I guess there simply is a difference between being lost and having to find guidance yourself and getting a peer-reviewed recommendation.
Hey I created a pull request -- would you be willing to take a look?

Discussion:
<ins> { lib, python3Packages, fetchFromGitHub }: python3Packages.buildPythonApplication rec { pname = "pyradio"; version = "0.8.9.9"; src = fetchFromGitHub { owner = "coderholic"; repo = pname; rev = version; sha256 = "04asw5alkkf2q5iixswarj6ddb0y4a6ixm7cckl6204jiyxpv6kc"; }; checkPhase = '' $out/bin/pyradio --help ''; meta = with lib; { homepage = "http://www.coderholic.com/pyradio/"; description = "Curses based internet radio player"; license = licenses.mit; maintainers = with maintainers; [ contrun ]; }; } </ins>

<del> { lib, python3Packages, fetchFromGitHub }: python3Packages.buildPythonApplication rec { pname = "pyradio"; version = "0.8.9.9"; src = fetchFromGitHub { owner = "coderholic"; repo = pname; rev = version; sha256 = "04asw5alkkf2q5iixswarj6ddb0y4a6ixm7cckl6204jiyxpv6kc"; }; checkPhase = '' $out/bin/pyradio --help ''; meta = with lib; { homepage = "http://www.coderholic.com/pyradio/"; description = "Curses based internet radio player"; license = licenses.mit; maintainers = with maintainers; [ contrun ]; }; } </del>

pipewire = callPackage ../development/libraries/pipewire {}; pipewire_0_2 = callPackage ../development/libraries/pipewire/0.2.nix {}; <del> pyradio = callPackage ../applications/radio/pyradio {}; </del> <ins> pyradio = callPackage ../applications/audio/pyradio {}; </ins> pyrex = pyrex095;
Change:
mit-scheme errors out when trying to invoking its binary. Steps to reproduce the behavior: pkgs.mitscheme from nixpkgs master it with or Error log Please run and paste the result. Maintainer information: mitscheme has no maintaner :(

Discussion:
runHook postInstall ''; <del> postFixup = '' wrapProgram $out/bin/mit-scheme${arch} --set MITSCHEME_LIBRARY_PATH  $out/lib/mit-scheme${arch} ''; </del> <ins> postFixup = '' wrapProgram $out/bin/mit-scheme${arch}-${version} --set MITSCHEME_LIBRARY_PATH  $out/lib/mit-scheme${arch}-${version} ''; </ins> nativeBuildInputs = [ makeWrapper gnum4 texinfo texLive automake ghostscript autoconf libtool ];
Change:
RStudio is missing most of the text from its UI (see screenshots), the text one being displayed is in the top menu bar. Icons are displayed correctly though. or to the environment (for example ) The main interface starts in a new window with version information in the left pane, environment information in the top-right pane, and filesystem overview (with file and folder names and not only a logo to represent them) What I observe: ! Expected (here taken from archlinux's rstudio package) : !
Confirmed, fixed on my side, thank you!
I also have this issue and the PR does not solve it... Please let me know what information I can provide to help you in debugging.
Please just forget about it : my pinned version was not building the new version that you packaged. Thank you for your help !

Discussion:
rsclock = callPackage ../applications/misc/rsclock { }; <del> rstudio = libsForQt514.callPackage ../applications/editors/rstudio { </del> <ins> rstudio = libsForQt5.callPackage ../applications/editors/rstudio { </ins> boost = boost166; llvmPackages = llvmPackages_7; jdk = jdk8; # TODO: remove override https://github.com/NixOS/nixpkgs/pull/89731
Change:
I'd like to request a change to the configuration of the r-updates jobset () to alter the nixpkgs input to point at the r-updates branch in my fork () rather than peti's. As one of the current codeowners of r/rPackages I would like to be able to manage staging and testing of this tree. Moving r-updates to a branch of nixpkgs rather than my fork, as is done with haskell-updates, would also be fine with me if that's more appropriate.
I'd say a branch in nixpkgs is preferable as it makes contributing, sharing the work among multiple people and changes in maintainers easier. cc who can make these kinds of changes.
I'd rather see the branch to be on nixpkgs for two reasons: it's one less difference between languages it allows for PRs on this repo
It may also be a good idea to move from to nixpkgs as, say, , so the jobset can be changed with less hassle.
We should expand the platforms to darwin & aarch64 too if there's capacity.
All done, I think.

Discussion:
<ins> /* This is the Hydra jobset for the `r-updates` branch in Nixpkgs. The jobset can be tested by: $ hydra-eval-jobs -I . pkgs/top-level/release-r.nix */ { supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" ] }: with import ./release-lib.nix { inherit supportedSystems; }; mapTestOn { rPackages = packagePlatforms pkgs.rPackages; } </ins>
Change:
Cudatoolkit is not working. This is the last lines log: Steps to reproduce the behavior: Cudatoolkit to your systempackages to new version Cudatoolkit build If applicable, add screenshots to help explain your problem. It seems to this is a error in . I think this already merged PR in fix this problem <!-- Please @ people who are in the list of the offending package or module. If in doubt, check for whoever last touched something. -- Please run and paste the result. Maintainer information:
Hey, thanks for pointing this out. You're right that this has already been fixed in patchelf, but it will be a while before the next patchelf release is cut and merged via staging-next. Until then, I think it's worthwhile to work around this - please take a look at and let me know if that fixes your issue.
Cudatoolkit is building. Thanks!

Discussion:
--set-interpreter "''$(cat $NIX_CC/nix-support/dynamic-linker)" $i fi if [[ $i =~ libcudart ]]; then <del> rpath2= </del> <ins> patchelf --remove-rpath $i </ins> else rpath2=$rpath:$lib/lib:$out/jre/lib/amd64/jli:$out/lib:$out/lib64:$out/nvvm/lib:$out/nvvm/lib64 <ins> patchelf --set-rpath "$rpath2" --force-rpath $i </ins> fi <del> patchelf --set-rpath "$rpath2" --force-rpath $i </del> done < <(find $out $lib $doc -type f -print0) '';
Change:
ocrmypdf in versions <12.4.0 has a dependency on pluggy <1.0, but pluggy in nixpkgs-unstable is 1.0.0 as of . ocrmypdf on latest unstable fails with: build succeeds Ocrmypdf as of 12.4.0 has validated that it's compatible with pluggy=1.0: As of 12.5.0, it has a build failure fixed with pikepdf 3.0 (see ) on an old python: Please run and paste the result. Maintainer information:

Discussion:
in buildPythonApplication rec { pname = "ocrmypdf"; <del> version = "12.3.0"; </del> <ins> version = "12.5.0"; </ins> src = fetchFromGitHub { owner = "jbarlow83"; repo = "OCRmyPDF"; rev = "v${version}"; <del> sha256 = "122yv3p0v4fbx30zgppcznwnm7svg97gv0sa103xb6zcld68ggn2"; </del> <ins> sha256 = "sha256-g80WedX+TGHE9EJ/RSgOc53PM17V3WZslUNaHoqKTo0="; </ins> }; nativeBuildInputs = with python3Packages; [

propagatedBuildInputs = with python3Packages; [ cffi <del> chardet </del> coloredlogs img2pdf <ins> importlib-resources </ins> pdfminer pluggy pikepdf

license = with licenses; [ mpl20 mit ]; platforms = platforms.linux; maintainers = [ maintainers.kiwi ]; <del> changelog  = "https://github.com/jbarlow83/OCRmyPDF/blob/v${version}/docs/release_notes.rst"; </del> <ins> changelog = "https://github.com/jbarlow83/OCRmyPDF/blob/v${version}/docs/release_notes.rst"; </ins> }; }
Change:
fails to build as: Maintainer information:
fishnet-assets is archived; fishnet's builtin stockfish and fairy-stockfish are now submodules built from source. So I think we can just get rid of entirely. I think the only hard part is adjusting their build script so it doesn't try to download the NNUE file.

Discussion:
<del> { lib , stdenv , fetchFromGitHub , xz , autoPatchelfHook }: # Assets for fishnet: A collection of pre-built compressed stockfish binaries. # We have to decompress them, patch them using auto-patchelf and compress them # again so that a selection of them can be embedded into the fishnet binary. stdenv.mkDerivation rec { pname = "fishnet-assets"; version = "unstable-2020-03-27"; src = fetchFromGitHub { owner = "niklasf"; repo = pname; rev = "a1fe3ec6074ad9dc43e6d46e0d42fab5d7cce12c"; sha256 = "1548wj2bs89b5w42z3c98hpnbln5w8p1909wyl7a63d8vkvnyn5l"; }; relAssetsPath = "share/${pname}"; nativeBuildInputs = [ xz autoPatchelfHook ]; postPatch = '' # Delete packed .exe files and all non .xz files (documentation and readme) rm *.exe.xz find ! -name "*.xz" -delete # Extract .xz files, except *.nnue.xz # We don't have to unpack the latter and it takes ages to repack find -name "*.xz" ! -name "*.nnue.xz" | xargs unxz -v ''; dontBuild = true; installPhase = '' mkdir -p $out/${relAssetsPath} cp ./* $out/${relAssetsPath} ''; preFixup = '' gatherLibraries '${stdenv.cc.cc.lib}' ''; doDist = true; distPhase = '' # repack assets find $out/${relAssetsPath} -type f ! -name "*.xz" | xargs xz -v ''; meta = with lib; { description = "Assets for fishnet, only required during build"; homepage = "https://github.com/niklasf/fishnet-assets"; license = licenses.gpl3Only; maintainers = with maintainers; [ tu-maurice ]; platforms = [ "x86_64-linux" ]; }; } </del>

, stdenv , rustPlatform , fetchFromGitHub <del> , xz , autoPatchelfHook }: </del> <ins> , fetchurl }: </ins> let <del> assets = import ./assets.nix { inherit lib stdenv fetchFromGitHub xz autoPatchelfHook; </del> <ins> nnueFile = "nn-6762d36ad265.nnue"; nnue = fetchurl { url = "https://tests.stockfishchess.org/api/nn/${nnueFile}"; sha256 = "0727dsxfpns9fkyir95fybibqmigk5h45k154b2c5rk5s9md6qk7"; </ins> }; in rustPlatform.buildRustPackage rec { pname = "fishnet"; <del> version = "2.2.6"; </del> <ins> version = "2.4.0"; </ins> src = fetchFromGitHub { owner = "niklasf"; repo = pname; rev = "v${version}"; <del> sha256 = "0dmc58wzv758b82pjpfzcfi0hr14hqcr61cd9v5xlgk5w78cisjq"; </del> <ins> sha256 = "sha256-1Gl2vJFn9yVYH62yBJefAOBX/jJaFAdSZj2Lj3imcps="; fetchSubmodules = true; </ins> }; <del> cargoSha256 = "1s37b0w1aav6gz399zncfp0zqh5sfy0zmabhl7n8p5cwlmlvnlsj"; preBuild = '' rmdir ./assets ln -snf ${assets}/${assets.relAssetsPath} ./assets </del> <ins> postPatch = '' cp -v '${nnue}' 'Stockfish/src/${nnueFile}' cp -v '${nnue}' 'Fairy-Stockfish/src/${nnueFile}' </ins> ''; <del> passthru.assets = assets; </del> <ins> cargoSha256 = "sha256-/s7Yyi2FUh+EDvgaHLgZ/FA6kk2FQrZr3L3B76fqTuc="; </ins> meta = with lib; { description = "Distributed Stockfish analysis for lichess.org";
Change:
Just updating git revision and sha256 seems to work (some example fails due to missing ncurses but the build succeeds). name: simavr current version: 1.5 desired version: 1.7 maintainers: Please tag this issue in your PR.

Discussion:
stdenv.mkDerivation rec { pname = "simavr"; <del> version = "1.5"; </del> <ins> version = "1.7"; </ins> src = fetchFromGitHub { owner = "buserror"; repo = "simavr"; <del> rev = "e0d4de41a72520491a4076b3ed87beb997a395c0"; sha256 = "0b2lh6l2niv80dmbm9xkamvnivkbmqw6v97sy29afalrwfxylxla"; </del> <ins> rev = "v${version}"; sha256 = "0njz03lkw5374x1lxrq08irz4b86lzj2hibx46ssp7zv712pq55q"; </ins> }; makeFlags = [