[Bug 2292255] Review Request: tailscale - Tailscale VPN Client built around WireGuard

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



https://bugzilla.redhat.com/show_bug.cgi?id=2292255



--- Comment #5 from Carl George 🤠 <carl@xxxxxxxxxx> ---
The linked spec file appears to be the rendered output after rpmautospec.  Make
sure when importing to use a SRPM that preserves the %autorelease and
%autochangelog macros.

https://docs.fedoraproject.org/en-US/packaging-guidelines/#changelogs

================================================================================

This spec file uses the %{name} macro in a few places in the spec file.  Unlike
something like %{version}, the name is not expected to change, so there isn't
really value in using it in places like the systemd unit file name.  It's a
matter of taste and is non-blocking for the review, but I think in the spirit
of legibility that you should just use the word tailscale instead of the
%{name} macro.

https://docs.fedoraproject.org/en-US/packaging-guidelines/#_spec_legibility

================================================================================

The License tag contains GPL-3.0.  That SPDX identifier is deprecated and is
causing an invalid license rpmlint warning.  You probably want to use either
GPL-3.0-only or GPL-3.0-or-later.

================================================================================

This spec installs a sysconfig file.  This type of file is a holdover from the
sysvinit days, when it was necessary to change a daemon's command without
editing the script itself.  These days, systemd handles that much more
gracefully with unit file overrides.  My recommendation is to remove this file,
the EnvironmentFile directive in the unit file, and just specify the port
explicitly in the ExecStart line.  This isn't forbidden in the guidelines, so
this isn't a blocker to the review, just a suggestion.  If you insist on
keeping it, you'll need to at least fix the EnvironmentFile path in the unit
file, as it currently reads /etc/default/tailscaled, while your file is
installed to /etc/sysconfig/tailscaled.

================================================================================

There are files being removed in %prep with a comment about reducing the size
of the SRPM.  Those files are still contained in the tarball, so it isn't
changing the size of the SRPM at all.  If reducing the size is the goal, it
would be better to move those steps into the tarball creation script.

================================================================================

This spec file contains both tailscale and tailscaled binaries.  Should those
be placed into separate subpackages?  I'm not very familiar with how tailscale
works, so disregard this if it is expected for both of these binaries to always
be installed together.

================================================================================

The PATENTS and cmd/tailscale/cli/licenses.go files are not license files, and
shouldn't be marked as such in %files.  The PATENTS file may make sense as a
%doc file, but the go source file probably shouldn't be included at all.  There
are also several files included as %doc that don't seem appropriate (k8s, sysv,
derp, windows, etc).  Please review these and only include relevant
documentation.

https://docs.fedoraproject.org/en-US/packaging-guidelines/#_documentation

================================================================================

The official RPMs from tailscale include the /var/cache/tailscale directory. 
The unit file creates that and /var/lib/tailscale.  Both of these should
probably be owned by the package.

================================================================================

How likely are you to switch this package from vendored deps to build requiring
the dependencies?  If you don't think it's likely to switch away from vendored
deps anytime soon, I would remove those conditionals to make the spec more
legible.

================================================================================

There is a comment in %build about downloading dependencies during the build. 
That is not permitted in Fedora's build system.  As such it's likely
unnecessary to set the GOPROXY environment variable.  There is also a commented
out GOSUMDB variable.  If that is not needed then it would be better to remove
it entirely instead of just commenting it out.

================================================================================

In %build there is a for loop being used to create two commands.  Since it
takes three lines to do this in a for loop, and just doing it directly would be
two lines, why not keep it simple and drop the for loop?  If you do keep the
for loop, the usage of basename is unnecessary the way it is set up.

================================================================================

The way this is currently being built, the version subcommand has faulting
output.

1.68.0-ERR-BuildInfo
  go version: go1.22.3

Upstream specficially requests that distributions build in a way that preserves
the version info.

https://github.com/tailscale/tailscale/blob/v1.68.1/README.md#building

If I'm reading their source correctly, I think you can embed the version
correctly by putting this in %build before the compilation.

export LDFLAGS="-X tailscale.com/version.longStamp=%{version} -X
tailscale.com/version.shortStamp=%{version}"

================================================================================

In %install, %gopkginstall should be conditionalized so that it doesn't run in
a vendored build.  Once you do this, you'll be able to remove the %exclude in
%files, because those files are created by this macro.

================================================================================

It seems you have some extraneous scriptlet dependencies.  You have a
Requires(pre) dependency on shadow-utils, but you don't have a %pre scriptlet. 
The Requires(post), Requires(preun), and Requires(postun) dependencies on
systemd are not necessary for the macros being called in those scriptlets.  All
of these should be removed.

https://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_dependencies_on_the_systemd_package


-- 
You are receiving this mail because:
You are always notified about changes to this product and component
You are on the CC list for the bug.
https://bugzilla.redhat.com/show_bug.cgi?id=2292255

Report this comment as SPAM: https://bugzilla.redhat.com/enter_bug.cgi?product=Bugzilla&format=report-spam&short_desc=Report%20of%20Bug%202292255%23c5
--
_______________________________________________
package-review mailing list -- package-review@xxxxxxxxxxxxxxxxxxxxxxx
To unsubscribe send an email to package-review-leave@xxxxxxxxxxxxxxxxxxxxxxx
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/package-review@xxxxxxxxxxxxxxxxxxxxxxx
Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue




[Index of Archives]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite Conditions]     [KDE Users]

  Powered by Linux