Bug 2297310

Summary: Review Request: atuin - magical shell history
Product: [Fedora] Fedora Reporter: Cristian Le <fedora>
Component: Package ReviewAssignee: Michel Lind <michel>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: fschwarz, michel, package-review, sigmavirus24
Target Milestone: ---Keywords: AutomationTriaged
Target Release: ---Flags: michel: fedora-review+
Hardware: All   
OS: Linux   
URL: https://atuin.sh
Whiteboard:
Fixed In Version: atuin-18.3.0-2.fc43 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2025-04-05 16:30:57 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On: 2259330, 2279547, 2283677, 2296372, 2296375, 2296540, 2296541, 2296542, 2297302, 2297303, 2297304, 2297305, 2297306, 2297307, 2318533    
Bug Blocks:    
Attachments:
Description Flags
The .spec file difference from Copr build 8820855 to 8848268 none

Description Cristian Le 2024-07-11 12:44:52 UTC
Spec URL: https://github.com/LecrisUT/atuin-rpmspec/raw/f63a0e4ad8e84cf1fd4533abacecf3fa353c4936/atuin/atuin.spec
SRPM URL: https://download.copr.fedorainfracloud.org/results/packit/SriRamanujam-atuin-rpmspec-7/fedora-rawhide-x86_64/07725260-atuin/atuin-18.3.0-1.fc41.src.rpm
Description: Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server.
Fedora Account System Username: lecris

rust2rpm.toml (Using workspace)
```toml
[features]
enable-all = true

[package]
url = "https://atuin.sh"
source-url = "https://github.com/atuinsh/atuin/archive/refs/tags/v%{version}.tar.gz"
extra-files = [
    "%{_datadir}/bash-completion/completions/atuin",
    "%{_datadir}/fish/completions/atuin",
    "%{_datadir}/zsh/site-functions/atuin",
    "%config %{_sysconfdir}/profile.d/atuin.sh"
]

summary = "magical shell history"

description = """
Atuin replaces your existing shell history with a SQLite database, and records
additional context for your commands. Additionally, it provides optional and fully
encrypted synchronisation of your history between machines, via an Atuin server.
"""

[[package.extra-patches]]
comments = [
    "Fix dependencies",
    "- Switch cli-clipboard for arboard",
    "  https://github.com/atuinsh/atuin/pull/2067",
    "- Bump metrics dependencies",
    "  https://github.com/atuinsh/atuin/pull/2062",
    "- Update tonic and prost dependencies",
    "  https://github.com/atuinsh/atuin/pull/2250",
    "  https://github.com/atuinsh/atuin/pull/2251",
    "- Lower serde_with dependency",
    "Cherry-picked in: https://github.com/LecrisUT/atuin/tree/fedora-18.3.0-patch",
]
file = "atuin-18.3.0-Fix_dependencies.patch"
number = 10

[requires]
build = [
    "protobuf-devel",
]
bin = [
    "bash-preexec",
]
test = [
    "postgresql-test-rpm-macros",
]

[scripts.check]
pre = [
    "# start a postgres instance for the tests to use",
    "export PGTESTS_LOCALE=\"C.UTF-8\"",
    "export PGTESTS_USERS=\"atuin:pass\"",
    "export PGTESTS_DATABASES=\"atuin:atuin\"",
    "export PGTESTS_PORT=5432",
    "%postgresql_tests_run",
]


[scripts.install]
post = [
    "# Generate all of the shell-completions",
    "for completion in bash fish zsh; do",
    "  %{buildroot}%{_bindir}/atuin gen-completions --shell $completion -o .",
    "done",
    "install -Dpm 644 atuin.bash %{buildroot}%{_datadir}/bash-completion/completions/atuin",
    "install -Dpm 644 atuin.fish %{buildroot}%{_datadir}/fish/completions/atuin",
    "install -Dpm 644 _atuin %{buildroot}%{_datadir}/zsh/site-functions/atuin",
    "",
    "# Add atuin to default profile",
    "mkdir -p %{buildroot}%{_sysconfdir}/profile.d",
    "cat > %{buildroot}%{_sysconfdir}/profile.d/atuin.sh <<EOF",
    "$(%{buildroot}%{_bindir}/atuin init bash)",
    "EOF"
]
```

Further changes:
- Fixed the license
- Changed the %cargo_install command

Comment 1 Fedora Review Service 2024-07-12 03:25:37 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/7726796
(failed)

Build log:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2297310-atuin/fedora-rawhide-x86_64/07726796-atuin/builder-live.log.gz

Please make sure the package builds successfully at least for Fedora Rawhide.

- If the build failed for unrelated reasons (e.g. temporary network
  unavailability), please ignore it.
- If the build failed because of missing BuildRequires, please make sure they
  are listed in the "Depends On" field


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 2 Cristian Le 2025-03-25 22:02:58 UTC
Spec URL: https://lecris.fedorapeople.org/reviews/atuin/atuin.spec
SRPM URL: https://lecris.fedorapeople.org/reviews/atuin/atuin-18.3.0-1.fc43.src.rpm

Update the patches to make it buildable and moved the `/etc/profile.d` to a separate package

Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=130751926

Comment 3 Cristian Le 2025-03-25 22:07:08 UTC
I am not updating it to `18.4.0` because it requires a few more dependencies to be packaged and `18.5.0` is in beta which will drop a series of dependencies, and I'm working on that next instead.

Comment 4 Fedora Review Service 2025-03-25 22:27:02 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8820855
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2297310-atuin/fedora-rawhide-x86_64/08820855-atuin/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 5 Michel Lind 2025-04-01 22:30:26 UTC
note to self: Cristian noted the dependency on bash-preexec is temporarily dropped, unlinking the issues

latest rust2rpm.toml: https://github.com/LecrisUT/atuin-rpmspec/blob/review/rust-dependencies/atuin/rust2rpm.toml

Comment 6 Michel Lind 2025-04-01 22:59:09 UTC
nits:
for the list of licenses, when you have only one license parenthesizing seems redundant. not a blocker

also not a blocker: on your %files you have
%license LICENSE
%license crates/atuin/LICENSE

^ these files have exactly the same names so they shadow each other. In this case they are identical (see below) but you just need to list one, not both - or if they are different, rename one first

$ sha256sum LICENSE crates/atuin/LICENSE
f87d1042ef858e746db8429f69a0cdd9dc73a28595dc738e5cbeb97ad8586d64  LICENSE
f87d1042ef858e746db8429f69a0cdd9dc73a28595dc738e5cbeb97ad8586d64  crates/atuin/LICENSE

Comment 7 Michel Lind 2025-04-01 23:01:45 UTC
SourceLicense does not work on epel9 IIRC. maybe gate it behind

%if 0%{?fedora} || (0%{?rhel} && %{?rhel} >= 10)
SourceLicense: ...
%endif

Comment 8 Michel Lind 2025-04-01 23:07:10 UTC
rpmlint issues

atuin.x86_64: W: summary-not-capitalized magical shell history
atuin.x86_64: E: subdir-in-bin /usr/bin/atuin/atuin
atuin.x86_64: E: spelling-error ('synchronisation', '%description -l en_US synchronisation -> synchronization, synchronicity')
atuin.x86_64: E: description-line-too-long additional context for your commands. Additionally, it provides optional and fully
 1 packages and 0 specfiles checked; 3 errors, 1 warnings, 3 filtered, 3 badness; has taken 0.6 s 

summary and description should be easy to fix

the subdir-in-bin is ... I think because you have an extra atuin here

install -Dpm 0755 target/rpm/atuin -t %{buildroot}%{_bindir}/atuin
                                                             ^ you use -D in combination with -t, so all components are created including the extra atuin

Comment 9 Cristian Le 2025-04-02 08:55:50 UTC
Spec URL: https://lecris.fedorapeople.org/reviews/atuin/atuin.spec
SRPM URL: https://lecris.fedorapeople.org/reviews/atuin/atuin-18.3.0-1.fc43.src.rpm

Thanks for the comments, this one should address all of them other than the `SourceLicense` part which let's see if it indeed works as Fabio commented

Koji scratch build: https://koji.fedoraproject.org/koji/taskinfo?taskID=131007096

Comment 10 Fedora Review Service 2025-04-02 09:20:52 UTC
Created attachment 2083068 [details]
The .spec file difference from Copr build 8820855 to 8848268

Comment 11 Fedora Review Service 2025-04-02 09:20:55 UTC
Copr build:
https://copr.fedorainfracloud.org/coprs/build/8848268
(succeeded)

Review template:
https://download.copr.fedorainfracloud.org/results/@fedora-review/fedora-review-2297310-atuin/fedora-rawhide-x86_64/08848268-atuin/fedora-review/review.txt

Please take a look if any issues were found.


---
This comment was created by the fedora-review-service
https://github.com/FrostyX/fedora-review-service

If you want to trigger a new Copr build, add a comment containing new
Spec and SRPM URLs or [fedora-review-service-build] string.

Comment 12 Michel Lind 2025-04-05 02:09:52 UTC
Package was generated with rust2rpm, simplifying the review.

- package builds and installs without errors on rawhide
- test suite is run and all unit tests pass
- latest version of the software is packaged
- license matches upstream specification (MIT) and is acceptable for Fedora
- licenses of statically linked dependencies are correctly taken into account
- license file is included with %license in %files
- package complies with Rust Packaging Guidelines

Package APPROVED.

===

Recommended post-import rust-sig tasks (use `fedora-sig-onboard onboard rust-$crate` to automate):

- add @rust-sig with "commit" access as package co-maintainer
  (should happen automatically)

- set bugzilla assignee overrides to @rust-sig (optional)

- set up package on release-monitoring.org:
  project: $crate
  homepage: https://crates.io/crates/$crate
  backend: crates.io
  version scheme: semantic
  version filter: alpha;beta;rc;pre
  distro: Fedora
  Package: rust-$crate

- track package in koschei for all built branches
  (should happen automatically once rust-sig is co-maintainer)

Comment 13 Cristian Le 2025-04-05 15:50:46 UTC
Thank you for the review, Michel

Comment 14 Fedora Admin user for bugzilla script actions 2025-04-05 15:50:56 UTC
The Pagure repository was created at https://src.fedoraproject.org/rpms/atuin

Comment 15 Fedora Update System 2025-04-05 16:27:46 UTC
FEDORA-2025-1d948f515e (atuin-18.3.0-2.fc43) has been submitted as an update to Fedora 43.
https://bodhi.fedoraproject.org/updates/FEDORA-2025-1d948f515e

Comment 16 Fedora Update System 2025-04-05 16:30:57 UTC
FEDORA-2025-1d948f515e (atuin-18.3.0-2.fc43) has been pushed to the Fedora 43 stable repository.
If problem still persists, please make note of it in this bug report.