Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
Humandoodlebug opened this issue Feb 24, 2022 · 2 comments
Assignees

Comments

@Humandoodlebug
Copy link

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!...
@JustinTimperio
Copy link
Owner

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.

@Humandoodlebug
Copy link
Author

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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants