#1426 closed enhancement (fixed)
update-smart-drivedb: Allow update from other URLs or local files
Reported by: | Paul Wise | Owned by: | Christian Franke |
---|---|---|---|
Priority: | minor | Milestone: | Release 7.3 |
Component: | all | Version: | |
Keywords: | Cc: | onlyjob |
Description
I think it would be nice if the Debian package maintainer did not have to re-implement the checks implemented by update-smart-drivedb (including the ones suggested in #1424) in the Debian postinstall script, so I suggest that a --local-dir option for update-smart-drivedb could be used to make it look at a local directory for the drivedb.h copy installed by the Debian package, perform the necessary checks and then update the canonical drivedb.h in /var. Then the Debian postinstall script could just run update-smart-drivedb --local-dir, passing the directory in the package where the necessary files are installed.
I have CCed onlyjob, the Debian package maintainer.
Change History (14)
comment:1 by , 4 years ago
Component: | drivedb → all |
---|---|
Milestone: | → Release 7.3 |
comment:2 by , 4 years ago
comment:3 by , 4 years ago
I forgot to mention that enabling the --local-dir option should disable the signature checks because there are multiple types of use-cases for this:
The Debian package does not include the signatures for drivedb.h.
The Debian drivedb.h could be patched compared to upstream, say in a Debian stable release or similar.
The user could be trying to install their own custom drivedb.h.
comment:4 by , 4 years ago
--no-verify
could already be used to disable signature checks. Proposed syntax:
update-smart-drivedb [--no-verify] --local /src/dir/drivedb.h [/dest/dir/drivedb.h]
If --no-verify
is not specified, /src/dir/drivedb.h.raw.asc
must exist. This enables another use case: Offline updates for machines without internet connection.
comment:6 by , 3 years ago
Owner: | set to |
---|---|
Status: | new → accepted |
comment:7 by , 3 years ago
Summary: | drivedb.h: update-smart-drivedb --local-dir option → update-smart-drivedb: Allow update from other URLs or local files |
---|
Will be implemented by an enhancement to the -u
option. It will accept other URLs or local path names. Changing summary accordingly.
comment:8 by , 3 years ago
TBH, I think it is better to not merge two different namespaces (URLs and local files) and two different features (downloading files and loading files from disk) into one option.
comment:11 by , 3 years ago
If possible, please test whether this works for your use case:
update-smart-drivedb --no-verify --file /src/dir/drivedb.h [/dest/dir/drivedb.h]
comment:12 by , 3 years ago
A further enhancement added in r5318:
To distribute drivedb.h
separately, use for example:
./configure ... \ --with-drivedbinstdir=/usr/share/smartmontools \ --with-drivedbdir=/var/lib/smartmontools
Then make install
installs /usr/share/smartmontools/drivedb.h
but smartctl
and smartd
still use /var/lib/smartmontools/drivedb.h
.
Include this in the package postinstall script:
/usr/sbin/update-smart-drivedb [--quiet] --install
This copies /usr/share/smartmontools/drivedb.h
to /var/lib/smartmontools/drivedb.h
except if an already present version is newer and on the same branch.
comment:13 by , 3 years ago
That is a perfect outcome, thanks for your work on this.
I'll convey these changes to the Debian bug about this.
comment:14 by , 3 years ago
That bug was closed and archived so I have filed a new bug about using the approach from comment:12 above:
Adding this to update-smart-drivedb will take some time due to required refactorings.
For now, here is a standalone script: