Northy1717/SWE-bench-Live huggingface dataset:
Repository: beeware/briefcase

Issue:
[Fedora] Mistake in prompt for installing rpm-build
### Describe the bug

When rpm-build is not present on Fedora, ```briefcase package``` will prompt for installing rpm-build via ```sudo dnf install rpmbuild```, whose package name is wrong. The correct package name is ```rpm-build```, installed via ```sudo dnf install rpm-build```.

### Steps to reproduce

1. Fresh install Fedora and use ```briefcase package```
2. Briefcase prompts ```sudo dnf install rpmbuild```
3. DNF cannot find package ```rpmbuild``` with the given command

### Expected behavior

1. Fresh install Fedora and use ```briefcase package```
2. Briefcase prompts ```sudo dnf install rpm-build```
3. DNF installs ```rpm-build``` successfully.

### Screenshots

_No response_

### Environment

OS: Fedora 39

### Logs

_No response_

### Additional context

_No response_


Discussion:
Thanks for the report! Care to try your hand at a pull request to fix it? The line of code in question [is here]( https://github.com/beeware/briefcase/blob/main/src/briefcase/platforms/linux/system.py#L855).



Patch:
diff --git a/changes/1638.bugfix.rst b/changes/1638.bugfix.rst
new file mode 100644
index 000000000..d7b0396ae
--- /dev/null
+++ b/changes/1638.bugfix.rst
@@ -0,0 +1,1 @@
+When Briefcase can't find ``rpmbuild` on an RPM-based system, the message giving install instructions now uses the correct package name.
diff --git a/src/briefcase/platforms/linux/system.py b/src/briefcase/platforms/linux/system.py
index 6a986c4cd..974904a8b 100644
--- a/src/briefcase/platforms/linux/system.py
+++ b/src/briefcase/platforms/linux/system.py
@@ -852,7 +852,7 @@ def _verify_packaging_tools(self, app: AppConfig):
         """Verify that the local environment contains the packaging tools."""
         tool_name, executable_name, package_name = {
             "deb": ("dpkg", "dpkg-deb", "dpkg-dev"),
-            "rpm": ("rpm-build", "rpmbuild", "rpmbuild"),
+            "rpm": ("rpm-build", "rpmbuild", "rpm-build"),
             "pkg": ("makepkg", "makepkg", "pacman"),
         }[app.packaging_format]
 


Test patch:
diff --git a/tests/platforms/linux/system/test_package__rpm.py b/tests/platforms/linux/system/test_package__rpm.py
index 10471802b..cf4722397 100644
--- a/tests/platforms/linux/system/test_package__rpm.py
+++ b/tests/platforms/linux/system/test_package__rpm.py
@@ -99,7 +99,7 @@ def test_verify_no_docker(monkeypatch, package_command, first_app_rpm):
     [
         (
             "rhel",
-            "Can't find the rpm-build tools. Try running `sudo dnf install rpmbuild`.",
+            "Can't find the rpm-build tools. Try running `sudo dnf install rpm-build`.",
         ),
         (None, "Can't find the rpmbuild tool. Install this first to package the rpm."),
     ],
Repository: conan-io/conan

Issue:
[feature] Output dependency graph with conan build
### What is your suggestion?

With ```conan create``` and ```conan install```, we can add ```-f json > somename.json``` to get a dependency graph out. However, we can't do the same for ```conan build```.

This seems like an oversight, because now it's possible to call ```conan build``` without calling ```conan install``` first, which I thought was nice. But it's not quite as nice if I'm now forced to call ```conan install``` just because I want the dependency graph.

Could you please add this?

### Have you read the CONTRIBUTING guide?

- [X] I've read the CONTRIBUTING guide


Discussion:
Thanks for the suggestion @antoinebardoz 

Yes, this makes sense, lets add it.
Implemented in https://github.com/conan-io/conan/pull/15651, it will be in next 2.1 release



Patch:
diff --git a/conan/cli/commands/build.py b/conan/cli/commands/build.py
index 9231c714967..2212e5f79ac 100644
--- a/conan/cli/commands/build.py
+++ b/conan/cli/commands/build.py
@@ -2,13 +2,14 @@
 
 from conan.api.output import ConanOutput
 from conan.cli.command import conan_command
+from conan.cli.formatters.graph import format_graph_json
 from conan.cli import make_abs_path
 from conan.cli.args import add_lockfile_args, add_common_install_arguments, add_reference_args
 from conan.cli.printers import print_profiles
 from conan.cli.printers.graph import print_graph_packages, print_graph_basic
 
 
-@conan_command(group='Creator')
+@conan_command(group='Creator', formatters={"json": format_graph_json})
 def build(conan_api, parser, *args):
     """
     Install dependencies and call the build() method.
@@ -71,4 +72,4 @@ def build(conan_api, parser, *args):
     lockfile = conan_api.lockfile.update_lockfile(lockfile, deps_graph, args.lockfile_packages,
                                                   clean=args.lockfile_clean)
     conan_api.lockfile.save_lockfile(lockfile, args.lockfile_out, source_folder)
-    return deps_graph
+    return {"graph": deps_graph}


Test patch:
diff --git a/conans/test/integration/command/test_build.py b/conans/test/integration/command/test_build.py
index efdedea98e0..81ea2c69c1c 100644
--- a/conans/test/integration/command/test_build.py
+++ b/conans/test/integration/command/test_build.py
@@ -1,3 +1,5 @@
+import json
+
 from conans.test.assets.genconanfile import GenConanfile
 from conans.test.utils.tools import TestClient
 
@@ -16,3 +18,19 @@ def test_build_cmd_deploy_generators():
     current_folder = c.current_folder.replace("\\", "/")
     path = f'{current_folder}/myfolder/full_deploy/host/dep/1.0'
     assert f'set(dep_PACKAGE_FOLDER_RELEASE "{path}")' in cmake
+
+
+def test_build_output_json():
+    """
+    The build command should have the --format=json option.
+    """
+    _OUTPUT_FILE = "output.json"
+
+    client = TestClient()
+    conanfile = GenConanfile()
+    client.save({"conanfile.py": conanfile})
+    client.run("build . --format=json", redirect_stdout=_OUTPUT_FILE)
+    output = json.loads(client.load(_OUTPUT_FILE))
+
+    assert "graph" in output
+    assert "nodes" in output["graph"]