Skip to content

add: ncspot#10701

Open
like-engels wants to merge 9 commits intoterrapkg:frawhidefrom
like-engels:frawhide
Open

add: ncspot#10701
like-engels wants to merge 9 commits intoterrapkg:frawhidefrom
like-engels:frawhide

Conversation

@like-engels
Copy link
Copy Markdown
Contributor

I wanted to contribute an RPM version of ncspot so we can play our bangers from terminal, since this is a very popular and nice Spotify TUI and there's no repo listing for Fedora/RHEL and derivatives I think we could also get in touch with the maintainer to list Terra as an RPM repo for it.

I built this locally and it works great on RHEL 10 & Fedora 43

Comment thread anda/multimedia/ncspot/ncspot.spec Outdated
Co-authored-by: hamachitan[bot] <252235638+hamachitan[bot]@users.noreply.github.com>
Signed-off-by: Engels Tercero <75184282+like-engels@users.noreply.github.com>
Comment on lines +13 to +19
Requires: dbus
Requires: glibc
Requires: libxcb
Requires: pipewire-pulseaudio
Requires: pulseaudio-libs
Requires: openssl

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if you have specified the buildrequires you don't need to specify these

Copy link
Copy Markdown
Contributor Author

@like-engels like-engels Mar 19, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some of them are runtime dependencies (such as the pulseaudio libs) that's why I explicitly added them as package dependencies.

I'm not an RPM expert so I'd appreciate some guidance on this, because runtime dependencies are what I'm concerned about.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so basically at the end of the build RPM will look at what the binary dynamically links to and add all these runtime requirements automatically, including information about the sover (that is the ABI version).

The only case where you need to manually add these runtime dependencies would be when the binary needs these runtime dependencies but it's not dynamically linked to them. As an example, if I create a program that runs the sed program, then I need to add sed as a runtime dependency when I package the program into an RPM.

@madonuko madonuko changed the title [Add] add ncspot package add: ncspot Mar 18, 2026
@madonuko madonuko enabled auto-merge (squash) March 18, 2026 05:42
@madonuko
Copy link
Copy Markdown
Member

I just looked at the repository, seems like there's an xtask that can generate manpages and shell completions, do you know how to add that to the package?

Comment thread anda/multimedia/ncspot/ncspot.spec
@like-engels
Copy link
Copy Markdown
Contributor Author

@madonuko Hi Madonuko, sadly I don't know how I could integrate it alongside the build system. :(

auto-merge was automatically disabled March 19, 2026 02:20

Head branch was pushed to by a user without write access

Copy link
Copy Markdown
Member

@madonuko madonuko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

didn't test, try these

Packager: like-engels <higashikataengels@icloud.com>
License: BSD-2-Clause AND (MIT OR Apache-2.0)
URL: https://crates.io/crates/%{crate}
Source0: %{crates_source}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Source0: %{crates_source}
Source0: https://github.com/hrkfdn/ncspot/archive/refs/tags/v%version.tar.gz

%license LICENSE
%license LICENSE.dependencies
%doc README.md
%{_bindir}/%{crate}
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
%{_bindir}/%{crate}
%{_bindir}/%{crate}
%{_appsdir}/%{crate}.desktop
%{_mandir}/man1/*.1.gz

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is a CLI tool, so I'll skip the desktop file

%{cargo_license_online} > LICENSE.dependencies

%install
%crate_install_bin
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
%crate_install_bin
%crate_install_bin
cargo xtask generate-manpage
cargo xtask generate-shell-completion
install -Dpm644 misc/%{crate}.desktop -t %buildroot%_appsdir
install -Dm644 misc/*.1 -t %buildroot%_mandir/man1
install -Dm755 misc/%{crate}.bash -t %buildroot%bash_completions_dir
install -Dm755 misc/%{crate}.elv -t %buildroot%elvish_completions_dir
install -Dm755 misc/%{crate}.fish -t %buildroot%fish_completions_dir
install -Dm755 misc/_%{crate} -t %buildroot%zsh_completions_dir

official Spotify client.}

%description %{_description}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
%pkg_completion -befz

@madonuko madonuko requested a review from Owen-sz April 8, 2026 19:48
@Owen-sz
Copy link
Copy Markdown
Member

Owen-sz commented Apr 9, 2026

@like-engels are you able to try Mado's suggestions?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants