pacback icon indicating copy to clipboard operation
pacback copied to clipboard

Pacback unable to find dhclient package (due to funky version string?)

Open sd-collins opened this issue 3 years ago • 2 comments

Describe the Bug:
Pacback can't find the package for dhclient-4.4.2.P1-4 in the cache when creating a full restore point. For context, this is an official archlinux package in the extra repository. I'm not familiar with the code, but I'd guess it's something to do with the P in the package version. I've included example invocations of pacback below first without, then with dhclient installed. Let me know if you need anything else :)

Output of Command

  • Output sent to the user in terminal
[root@44ce9fbb04c7 pacback]# pacback -f -c 1
Restore Point #01 Already Exists!
Do You Want to Overwrite It? (y/n):y
Building Full Restore Point 01...
Restore Point Creation Complete!
[root@44ce9fbb04c7 pacback]# pacman -S dhclient
resolving dependencies...
looking for conflicting packages...

Package (2)     New Version  Net Change  Download Size

core/run-parts  5.5-1          0.04 MiB       0.03 MiB
extra/dhclient  4.4.2.P1-4     2.85 MiB       1.08 MiB

Total Download Size:   1.11 MiB
Total Installed Size:  2.90 MiB

:: Proceed with installation? [Y/n] 
:: Retrieving packages...
 dhclient-4.4.2.P1-4-x86_64 downloading...
 run-parts-5.5-1-x86_64 downloading...
checking keyring...
checking package integrity...
loading package files...
checking for file conflicts...
:: Processing package changes...
installing run-parts...
installing dhclient...
:: Running post-transaction hooks...
(1/2) Reloading system manager configuration...
  Skipped: Current root is not booted.
(2/2) Arming ConditionNeedsUpdate...
[root@44ce9fbb04c7 pacback]# pacback -f -c 2
Building Full Restore Point 02...

======================================
The Following Packages Were NOT Found!
======================================
dhclient-4.4.2.P1-4

Do You Still Want to Continue? (y/n):n
Aborting Creation!
[root@44ce9fbb04c7 pacback]# 
  • Log output in /var/log/pacback.log
======================== 2022/02/24 ========================
[15:46:05.132052] session.lock(): Started Logging Session
[15:46:05.132083] session.lock(): Passed Root Check
[15:46:05.132107] session.lock(): Started Active Session
[15:46:05.132351] create.restore_point(01): Started Restore Point Creation...
[15:46:06.791128] utils.remove_id(rp01): Removal Complete
[15:46:06.791195] create.restore_point(01): All Checks Passed! Handing Off to create.main()
[15:46:06.791236] create.main(rp01): Building ID:01 As Full Restore Point
[15:46:06.797770] utils.scan_caches(): Started Scaning Directories for Packages...
[15:46:06.798506] utils.scan_caches(): Searched ALL Package Cache Locations
[15:46:06.798545] utils.scan_caches(): Returned 159 Cached Packages
[15:46:06.798576] utils.search_cache(159): Started Search for Matching Versions...
[15:46:06.811879] utils.search_cache(159): Found 159 OUT OF 159 Packages
[15:46:06.819559] create.main(rp01): HardLinked 159 Packages
[15:46:06.826558] create.main(rp01): Generated Meta Data File
[15:46:06.826712] create.main(rp01): Generated Meta Data Checksum
[15:46:06.826742] create.main(rp01): Main Build Complete of ID:01 As Full Restore Point
[15:46:06.826782] create.restore_point(01): Restore Point Creation Complete!
[15:46:06.826829] session.unlock(): Ended Active Session
[15:46:06.826857] session.unlock(): Ended Logging Session

======================== 2022/02/24 ========================
[15:46:32.966923] session.lock(): Started Logging Session
[15:46:32.966955] session.lock(): Passed Root Check
[15:46:32.966979] session.lock(): Started Active Session
[15:46:32.967238] create.restore_point(02): Started Restore Point Creation...
[15:46:32.967304] create.restore_point(02): All Checks Passed! Handing Off to create.main()
[15:46:32.967350] create.main(rp02): Building ID:02 As Full Restore Point
[15:46:32.974560] utils.scan_caches(): Started Scaning Directories for Packages...
[15:46:32.975591] utils.scan_caches(): Searched ALL Package Cache Locations
[15:46:32.976599] utils.scan_caches(): Returned 161 Unique Cache Packages
[15:46:32.976650] utils.search_cache(161): Started Search for Matching Versions...
[15:46:32.990439] utils.search_cache(161): Found 160 OUT OF 161 Packages
[15:46:32.991069] create.main(rp02): Not All Packages Where Found!
[15:46:39.972499] create.main(rp02): ABORT: User Aborted Due to Missing Pkgs
[15:46:39.972614] session.unlock(): Ended Active Session
[15:46:39.972668] session.unlock(): Ended Logging Session
  • Config file in /etc/pacback.conf
## Pacback Config File
## Version 2.0.0

## Mandatory Settings

# Number Of Seconds Before The Snapshot Lock Expires
# MUST be an INT
hook_cooldown = 300

# Max Number Of Snapshots To Keep
# MUST be an INT
max_ss =  25

# Let The User Schedule a Reboot if Needed.
# If False Pacback Will Only Notify You
# MUST be True or False
reboot = True

## Optional Settings

# Number Of Minutes In Future To Schedule Reboot
# Only Runs After The Kernel Has Changed
# MUST be an INT
reboot_offset = 5

# Number of Old Cached Versions To Keep
# When Running a Pacback Cache Clean
# MUST be an INT
keep_versions = 3

# Number Of Days Before an RP is Flagged Old
# MUST be an INT
old_rp = 180

Machine (please fill in the following information):

  • Kernel Version: 5.16.10-arch1-1
  • Python Version: Python 3.10.2
  • Python Rich Version: python-rich 11.2.0-1
  • Python Requests Version: python-requests 2.27.1-1
  • Pacback Version: 2.1.0
  • Install Type: pacback (non-git)

To Reproduce Steps to reproduce the behavior:

  1. Install dhclient (# pacman -S dhclient)
  2. Attempt to create a full restore point (# pacback -f -c 1)
  3. See warning The Following Packages Were NOT Found!...

sd-collins avatar Feb 24 '22 16:02 sd-collins

Hi @Humandoodlebug,

I was wondering how long it would take for something like this to break. This has to do with the way the search works for the package versions, as a system contains multiple cached versions typically. There is a spec that all packages are meant to follow and this naming convention falls outside that I believe. I have dealt with this on AUR packages but never one in the standard repos.

I'll look into fixing this but I can't promise that it will get done quickly as i think this is a pretty rare naming edge case.

JustinTimperio avatar Feb 24 '22 16:02 JustinTimperio

Thanks @JustinTimperio, no rush! I'd poke the package maintainer, but by the looks of it they're deriving the version from upstream so might be reluctant to change it.

sd-collins avatar Feb 24 '22 16:02 sd-collins