aboutsummaryrefslogtreecommitdiff
path: root/docs
Commit message (Collapse)AuthorAgeFilesLines
* Update for 2018.08-rc32018.08-rc3Gravatar Peter Korsgaard2018-09-012-9/+31
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/website: update for 2018.02.5Gravatar Peter Korsgaard2018-08-292-9/+28
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/website: update for 2018.05.2Gravatar Peter Korsgaard2018-08-282-9/+28
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/manual: expand on why using a branch name is not supportedGravatar Yann E. MORIN2018-08-251-2/+15
| | | | | | | Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Update for 2018.08-rc22018.08-rc2Gravatar Peter Korsgaard2018-08-202-9/+31
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* core/pkg-kconfig: allow dependencies before configuratorsGravatar Yann E. MORIN2018-08-181-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some users of kconfig need some packages to be built before their kconfig infra be used. For example, the linux kernel, starting with 4.16, needs flex and bison to generate the parser code. Furthermore, starting with 4.18, it will also need the cross-compiler before parsing the kconfig stuff, because that calls the compiler to check its features. Currently, this is broken, even the flex/bison ones, even though they are listed, because there is no way to define dependencie that are guaranteed before the (visual) configurators. For example: $ make distclean $ make menuconfig --> enable the linux kernel, choose a defconfig, save, exit $ make linux-menuconfig [...] HOSTCC scripts/basic/fixdep HOSTCC scripts/kconfig/conf.o YACC scripts/kconfig/zconf.tab.c /bin/sh: bison: command not found LEX scripts/kconfig/zconf.lex.c scripts/Makefile.lib:196: recipe for target 'scripts/kconfig/zconf.tab.c' failed make[3]: *** [scripts/kconfig/zconf.tab.c] Error 127 make[3]: *** Waiting for unfinished jobs.... /bin/sh: flex: command not found scripts/Makefile.lib:188: recipe for target 'scripts/kconfig/zconf.lex.c' failed make[3]: *** [scripts/kconfig/zconf.lex.c] Error 127 Makefile:528: recipe for target 'rpc_defconfig' failed make[2]: *** [rpc_defconfig] Error 2 linux/linux.mk:511: recipe for target '/home/ymorin/dev/buildroot/buildroot/output/build/linux-4.17.11/.config' failed make[1]: *** [/home/ymorin/dev/buildroot/buildroot/output/build/linux-4.17.11/.config] Error 2 Makefile:79: recipe for target '_all' failed make: *** [_all] Error 2 So, we introduce a new type of dependencies for kconfig-based packages, that are guaranteed to be built and installed before the (visual) configurators are called. Since those dependencies are phony targets and therefore always out of date, a normal dependency would cause the .config target to be rebuilt on each invocation of make. So we use an order-only pre-requisite, like is done for the patch dependency. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Jan Kundrát <jan.kundrat@cesnet.cz> Tested-by: Jan Kundrát <jan.kundrat@cesnet.cz> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* docs/website: update news.html with 2018.08-rc1 announcement linkGravatar Thomas Petazzoni2018-08-051-1/+2
| | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Update for 2018.08-rc12018.08-rc1Gravatar Thomas Petazzoni2018-08-052-11/+34
| | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* docs/manual: update host gcc minimum required versionGravatar Baruch Siach2018-08-051-2/+2
| | | | | | | | | The oldest gcc that is known to work with current Buildroot is that of RHEL 6, version 4.4. Signed-off-by: Baruch Siach <baruch@tkos.co.il> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* docs/website: update for 2018.02.4Gravatar Peter Korsgaard2018-07-212-9/+28
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/website: update for 2018.05.1Gravatar Peter Korsgaard2018-07-202-9/+28
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/website/download.html: fix latest LTS version numberGravatar Peter Korsgaard2018-06-191-1/+1
| | | | | | | Latest is naturally .3, not .1 Reported-by: Thomas De Schampheleire <patrickdepinguin@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/website: update for 2018.02.3Gravatar Peter Korsgaard2018-06-182-9/+28
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/manual: fix scancpan pathGravatar Fabrice Fontaine2018-06-151-1/+1
| | | | | | | scancpan is now in utils not in supports/scripts Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/manual: always point to the correct license fileGravatar Yann E. MORIN2018-06-101-2/+2
| | | | | | | | | | | | | | | | | | | | | The manual is GPL-2, and points to the COPYING file in the repository. When we do a rendering of the manual for a specific version, that URL is currently always poitning to the latest version of the COPYING file. If we ever have to change the content of that file (e.g. to add a new exception, more clarifications, a license change, or whatever), then an old manual would point to that newer version, which would then be incorrect. Include the sha1 of the commit in the URL, so that the manual always point to the tree at the time the manual was rendered, not the time it is consulted. Contrary to the informative text above, use the full sha1, not the shortened one. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Cc: Luca Ceresoli <luca@lucaceresoli.net> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Merge branch 'next'Gravatar Peter Korsgaard2018-06-021-61/+56
|\ | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
| * docs/manual: document pkg-meson infraGravatar Eric Le Bihan2018-05-301-61/+56
| | | | | | | | | | | | | | | | Update documentation about adding meson-based packages with instructions for using pkg-meson infrastructure. Signed-off-by: Eric Le Bihan <eric.le.bihan.dev@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* | docs/website/news.html: add 2018.05 announcement linkGravatar Peter Korsgaard2018-06-011-1/+2
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | Update for 2018.052018.05Gravatar Peter Korsgaard2018-06-012-14/+31
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | docs/website/news.html: fix s/2018.05/2018.02/ typosGravatar Peter Korsgaard2018-05-301-2/+2
| | | | | | | | | | Reported-by: Andreas Naumann <dev@andin.de> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | Update for 2018.05-rc32018.05-rc3Gravatar Peter Korsgaard2018-05-282-9/+31
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | Update for 2018.05-rc22018.05-rc2Gravatar Peter Korsgaard2018-05-222-9/+31
| | | | | | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* | docs/manual: using a branch name as FOO_VERSION does not workGravatar Yann E. MORIN2018-05-111-6/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | For various reasons, we've always suggested users to avoid using a branch as version string for their packages, because it does not work as a they would expect: - it is not reproducible, because the branch may change between two builds that are done at different times; - it does not even follow the branch, as Buildroot anyway generates a local tarball, which it will reuse on subsequent builds. Furthermore, since we fetch and not pull, any existing local branch is not updated. Yet, until recently, using a branch name would just work (with the above limitations): the git tree was cloned, the branch checked out, and the tarball created. But with the advent of the git caching, using a branch name does not work anymore. Indeed, we now do a git-fetch, and that does not create a local master branch. So we can't check out master, because it does not exist locally. And for other branches, as noticed above, the local branch does not get udpated to the remote one. Furthermore, the local branches are only created by chance, again as a side-effect of trying to fetch the "special refs". So, we can't say that we reliably support the use of a branch name. Update the manual to state that using a branch does not work. Remove the 'stable' example, as it looked like the name of a stable branch; instead, replace it with a version string that ressemble a tag. Fix the layout of the manual by making the version examples an actual bulleted list. Note: the above is only entirely true for git. For Mercurial, CVS and subversion, the status may be mixed, but nonetheless, using branches is still a bad idea, if at least because it is not reproducible, and because Buildroot does not even follow the branch. So, we do not differentiate between the various SCMs, and just flatly state that using a branch name is not supported. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas De Schampheleire <patrickdepinguin@gmail.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Cc: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* | docs/website: update news.html for 2018.05-rc1Gravatar Thomas Petazzoni2018-05-091-0/+24
|/ | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* Update for 2018.05-rc12018.05-rc1Gravatar Thomas Petazzoni2018-05-091-10/+11
| | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* docs/website: update for 2018.02.2Gravatar Peter Korsgaard2018-05-042-9/+28
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* package/pkg-generic: add check that target variant is defined before host ↵Gravatar Thomas Petazzoni2018-04-301-2/+4
| | | | | | | | | | | variant Update the documentation accordingly. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> [yann.morin.1998@free.fr: slight rephrasing in error message, update manual] Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* website: footer.html: really use version 1.7.1 of clipboard.jsGravatar Peter Korsgaard2018-04-281-1/+1
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/website: add favicon.pngGravatar Peter Korsgaard2018-04-281-0/+0
| | | | | | | | | | | | | | The website advertises a favicon in PNG format, but we don't actually provide one. From docs/website/header.html: <link rel="shortcut icon" href="images/favicon.png"> So add one. Generated by: convert -geometry 32x32! docs/website/images/logo_small.png \ docs/website/favicon.png Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* website: footer.html: use 1.7.1 release of clipboard.jsGravatar Peter Korsgaard2018-04-281-1/+1
| | | | | | | | | | | | | | | | | | | | The clipboard javascript code causes an error: Uncaught TypeError: Illegal constructor at buildroot.js:58 Which is caused by a recent change in upstream clipboard.js: https://github.com/zenorocha/clipboard.js/releases/tag/v2.0.0 Changes constructor from new Clipboard() to new ClipboardJS() The issue was that we were using the master version of clipboard.js instead of a specific release. Fix it by using the 1.7.1 version (latest release before the constructor change) instead. Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/website: update for 2017.02.11Gravatar Peter Korsgaard2018-04-121-0/+21
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/website: update for 2018.02.1Gravatar Peter Korsgaard2018-04-102-9/+28
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/manual: use SPDX short identifier for licenseGravatar Rahul Bedarkar2018-04-052-2/+2
| | | | | Signed-off-by: Rahul Bedarkar <rahulbedarkar89@gmail.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* help/manual: update help about the new $(LIBFOO_DL_DIR)Gravatar Maxime Hadjinlian2018-04-021-3/+3
| | | | | | Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/manual: add check-package to "Tips and tricks"Gravatar Ricardo Martincoski2018-04-023-2/+39
| | | | | | | | | | And add two references to it: in "Submitting patches" and in "Adding new packages to Buildroot" sections. Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Cc: Thomas De Schampheleire <thomas.de_schampheleire@nokia.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* support/scripts/graph-depends: use colors instead of coloursGravatar Thomas Petazzoni2018-04-011-2/+2
| | | | | | | | | | | | | | | | The graph-depends was not very consistent in colors vs. colours: some parts were using colours, some parts were using colors. Let's settle on the US spelling, colors. This change the user-visble option --colours to --colors, but it is unlikely that a lot of users customize the colors through BR2_GRAPH_DEPS_OPTS, so this user interface change is considered reasonable. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Allow adding per-package override rsync exclusionsGravatar Adrian Perez de Castro2018-04-011-0/+16
| | | | | | | | | | | | | | | | | | | | | | This allows using <PKG>_SRCDIR_OVERRIDE_RSYNC_EXCLUSIONS in local.mk to skip copying parts of source trees unneeded for building. For example, when developing WebKitGTK+, it's handy to skip copying all the tests and other build directories, which are huge: WEBKITGTK_OVERRIDE_SRCDIR = /home/aperez/WebKit WEBKITGTK_OVERRIDE_SRCDIR_RSYNC_EXCLUSIONS = \ --exclude JSTests --exclude ManualTests \ --exclude PerformanceTests --exclude WebDriverTests \ --exclude WebKitBuild --exclude WebKitLibraries \ --exclude WebKit.xcworkspace --exclude Websites \ --exclude Examples This saves a good chunk of time when rsync is used for the first time to copy the source tree over before building. Signed-off-by: Adrian Perez de Castro <aperez@igalia.com> [Arnout: move documentation to the end of the section] Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* package/pkg-golang: use 'build' instead of 'install'Gravatar Thomas Petazzoni2018-04-011-1/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | So far, we were using the 'go install' mechanism to build a package and have its binary installed in $$($(2)_WORKSPACE)/bin/linux_$$(GO_GOARCH). This worked fine when building on x86-64 for ARM, but failed when building on x86-64 for x86-64 because the binaries were installed in $$($(2)_WORKSPACE)/bin/. Instead of doing some complicated logic to guess whether Go is going to put our binaries in $$($(2)_WORKSPACE)/bin/ or in $$($(2)_WORKSPACE)/bin/linux_$$(GO_GOARCH), we revert back to using "go build", as it was done before the introduction of the golang package infrastructure. "go build" lets us pass explicitly the destination path of the binary to be generated. There's just one complexity with how to decide on the name of the binary that should be produced, and we have two cases: - <pkg>_BUILD_TARGETS is the default, i.e ".". In this case we assume a single binary is produced by "go build", and we name if after the lower case package name. We allow this to be overridden thanks to <pkg>_BIN_NAME. - <pkg>_BUILD_TARGETS is non-default, and typically contains something like "foo bar" or "cmd/foo cmd/bar". In this case, we assume the binaries to be produced are "foo" and "bar", i.e we take the non-directory part of the build target to name the binaries. Because we're using this -o option, we no longer need to explicitly create the binary directory, it is done by "go build". Fixes: http://autobuild.buildroot.net/results/1f9cd7c48e8c8f41326632a9c0de83915d72c45b/ [Peter: use $(or instead of $(if as suggested by Arnout] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/manual: update the documentation about test-pkgGravatar Thomas Petazzoni2018-04-011-3/+8
| | | | | | Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* toolchain: merge toolchain-common.in to Config.inGravatar Ricardo Martincoski2018-04-011-2/+2
| | | | | | | | | | | | | | | | | | toolchain-common.in is a Config.in file with an uncommon name. It is just included by toolchain/Config.in, and toolchain/Config.in is not that long, so instead of renaming the file, merge it to toolchain/Config.in. Move the raw contents from the file to the exact location it is currently included in order to not change the order in the menu. Update the references in the manual as well. Suggested-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Ricardo Martincoski <ricardo.martincoski@gmail.com> Cc: Arnout Vandecappelle <arnout@mind.be> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* docs/manual: add documentation for the golang infrastructureGravatar Angelo Compagnucci2018-03-312-0/+110
| | | | | | | | | | This patch adds the documentation for the golang infrastructure. Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
* package/pkg-generic: add the concept of extract dependencyGravatar Thomas Petazzoni2018-03-251-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Extract dependencies are dependencies that must be ready before the extract step of a package, i.e for tools that are needed to extract packages themselves. Current examples of such tools are host-tar, host-lzip and host-xz. They are currently handled through DEPENDENCIES_HOST_PREREQ. However, this mechanism has a number of drawbacks: - First and foremost, because host-tar/host-lzip/host-xz are not listed in the dependencies of packages, the package infrastructure does not know it should rsync them in the context of per-package SDK. - Second, there is no dependency handling *between* them. I.e, we have no mechanism that says host-tar should be built before host-lzip, while it is in fact the case: if you need to build host-lzip, you need to extract a tarball, so you may need host-tar if your system tarball is not capable enough. For those reasons, it makes sense to add explicit support for "extract dependencies" in the package infrastructure, through the <pkg>_EXTRACT_DEPENDENCIES variable. It is unlikely this variable will ever be used by a package .mk file, but it will be used internally by the package infrastructure. [Peter: fix typo in manual] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Tested-by: Matt Weber <matthew.weber@rockwellcollins.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/manual: pass PARALLEL_JOBS to NINJA_OPTSGravatar Jörg Krause2018-03-191-1/+1
| | | | | | | | | Ninja understands the `-j` option which defines how many jobs are run in parallel. Signed-off-by: Jörg Krause <joerg.krause@embedded.rocks> Acked-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* support/check-bin-arch: exclude kernel modules for merged /usrGravatar Yann E. MORIN2018-03-071-2/+2
| | | | | | | | | | | When using a merged /usr, the kernel module path is really /usr/lib/modules, as /lib is a symlink to usr/lib . Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Cc: Peter Korsgaard <peter@korsgaard.com> Reviewed-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* spport/check-bin-arch: accept arbitrary per-package ignore pathsGravatar Yann E. MORIN2018-03-071-0/+7
| | | | | | | | | | | | | | | Some packages (mostly, out-of-tree) may want to install binary blobs for another architecture, outside the locations we currently exclude, like in /opt or whatever... Add support in check-bin-arch to accept any arbitrary location, that individual package can each request to excude from the check, when they are installed. Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Cc: Peter Korsgaard <peter@korsgaard.com> Cc: Thomas Petazzoni <thomas.petazzoni@bootlin.com> Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/website/news.html: add 2018.02 announcement linkGravatar Peter Korsgaard2018-03-041-1/+2
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Update for 2018.022018.02Gravatar Peter Korsgaard2018-03-042-11/+32
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* Update for 2018.02-rc32018.02-rc3Gravatar Peter Korsgaard2018-02-272-9/+31
| | | | Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
* docs/manual: add documentation for the "make sdk" targetGravatar Daniel Serpell2018-02-251-7/+11
| | | | | Signed-off-by: Daniel Serpell <daniel.serpell@gmail.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
* website: update package number textGravatar Peter Korsgaard2018-02-251-1/+1
| | | | | | | | | | | | We have quite a bit more than "hundreds of packages" nowadays: find package -name \*.mk | wc -l 2285 So adjust the text to say 'several thousand' instead. Signed-off-by: Peter Korsgaard <peter@korsgaard.com> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>