pop-os / upgrade Goto Github PK
View Code? Open in Web Editor NEWUtility for upgrading Pop!_OS and its recovery partition to new releases.
License: GNU General Public License v3.0
Utility for upgrading Pop!_OS and its recovery partition to new releases.
License: GNU General Public License v3.0
Below are the most recent designs of the OS Upgrade & Refresh page. See the previous discussion here: [https://github.com//pull/67]
1. The default when everything is up to date is the same.
If w can find the same icon as used in the OS Upgrade popup that would be great.
2. When a user upgraded to 19.10 but needs updating the recovery partition, the design as follows. We will require a user to update the Recovery Partition in order to use Refresh OS regardless of the presence or absence of the Refresh OS option in the recovery partition. When the user updates the Recovery Partition, show the same view as default.
3. When the system is before 19.10 we will show the Upgrade available in addition to the previous case.
4. LTS users will see pretty much the same with the option to dismiss notifications for the upgrade.
When the update for the Recovery Partition is available show users the usual notification about the update and direct them to this page in the Settings once they click on the notification.
We want to remove all .progress_label()
s.
The updated .set_label()
s (https://github.com/pop-os/upgrade/pull/37/commits/3b548b2247755933aa5c440b78aeb2f21d330526)should be on the left, and the progress bar should be on the right (without any other text).
This requires:
The instructions from https://support.system76.com/articles/upgrade-pop/ aren't working for me (19.04). The suggested update through the setting GUI fails as shown on the screenshot below.
I then tried to take the terminal route. However, the command from the instructions doesn't exist:
$ pop-upgrade release upgrade
/sys/firmware/dmi/tables/smbios_entry_point: Permission denied
/dev/mem: Permission denied
pop-upgrade-release-upgrade
update the system, and fetch the packages for the next release
USAGE:
pop-upgrade release upgrade [OPTIONS] <SUBCOMMAND>
OPTIONS:
-f, --force-next Attempt to upgrade to the next release, even if it is not released
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
help Prints this message or the help of the given subcommand(s)
recovery utilize the recovery partition for performing an offline update
systemd apply system upgrades offline with systemd's offline-update service
I reckon I'm supposed to run this as root instead, but that also doesn't work, it just prints the help, which suggests that this isn't even a valid command?
Someone on Reddit suggested that I'd have to install the pop-desktop
package first. However it's flagged as conflicts: system76-desktop
, which is just a virtual package. Either way I cannot install it, it fails with another error:
$ sudo apt install pop-desktop
Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:
The following packages have unmet dependencies:
pop-desktop : Depends: sessioninstaller but it is not going to be installed
E: Unable to correct problems, you have held broken packages.
Let me know if I can provide any other information that might help to resolve this.
When an LTS release is installed after the release of a non-LTS version, the user should not be notified of a new Pop!_OS release until the next version comes out. (e.g. Install 18.04 in December of 2019 and should not be notified of a new release until 20.04).
Hi there!
I'm currently trying to upgrade to the beta of Pop!_OS 20.04 focal. However, whenever I run the upgrade command sudo pop-upgrade release upgrade systemd -f
, this is the output i get:
Event: removing deprecated and/or conflicting packages
Event: updating package lists for the current release
Release upgrade status: release upgrade aborted: failed to update package lists for the current release: command failed with exit status: exit code: 100
pop-upgrade: dbus client error: calling ReleaseUpgradeFinalize method failed
What can I do?
Required for GCC to display a dialog with a list of entries, as well as the conflicting entries.
pop-upgrade release refresh
REFRESH=1
For integration with GNOME Control Center, a DBus daemon must be available for it to connect to. System76 firmware upgrades are provided by the system76-firmware
daemon, so Pop upgrades could be provided as a daemon here. See the pull request for specific details on the API.
pop-upgrade release upgrade systemd
EDIT: Note offline
has been replaced with systemd
Cancel release upgrade if the user boots back into their system partition, instead of the recovery partition
After fetching the release upgrade packages, reboot, but boot into the system partition instead of the recovery partition.
The daemon should revert the changes made to the source lists once it realizes that the upgrade did not happen.
Before releasing #58, pop-os/gnome-control-center#42, and #57 , pop-upgrade needs to be able to display all changelogs between the current version and the latest version. The newest changelog should be displayed first and the oldest changelog last.
Prevent non-adm/sudo users from making upgrade requests with the daemon. (Require password from them?)
Customer was updating recovery partition on command line and ended up with full partition and 2 /recovery/casper-UUID directories.
Removed both casper directories and ran:
sudo pop-upgrade recovery upgrade from-release
That returned success but did not create the casper directories
After upgrading from 19.04 to 19.10, the system (Oryx 4) could not boot Pop_OS and the boot menu did not display it as an option. The only option available was for Windows Boot Manager (there is a Windows installation on this drive, and they use a single EFI System Partition). The output of efibootmgr -v
is:
BootCurrent: 0006
Timeout: 1 seconds
BootOrder: 0005,0006,0007,0002,0000
Boot0000* Pop!_OS 19.04 VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)
Boot0002* Windows Boot Manager VenHw(99e275e7-75a0-4b37-a2e6-c5385e6c00cb)WINDOWS.........x...B.C.D.O.B.J.E.C.T.=.{.9.d.e.a.8.6.2.c.-.5.c.d.d.-.4.e.7.0.-.a.c.c.1.-.f.3.2.b.3.4.4.d.4.7.9.5.}...3.............�...
Boot0005* Windows Boot Manager HD(1,GPT,435e6976-8795-4cae-97a5-e0e5142b8635,0x1000,0xf8fff)/File(\EFI\MICROSOFT\BOOT\BOOTMGFW.EFI)..BO
Boot0006* UEFI OS HD(1,MBR,0x0,0x0,0x1680)/File(\EFI\BOOT\BOOTX64.EFI)..BO
Boot0007* UEFI OS HD(2,MBR,0x7fe33249,0x140,0x1680)/File(\EFI\BOOT\BOOTX64.EFI)..BO
You can see Boot0000
exists, but the VenHw
type entries do not work, and will not allow the system to boot without additional options. They may be Windows-specific.
When upgrading to a new OS release, the recovery partition should be updated as well (without having to select a specific update recovery partition
button).
I am upgrading from 18.04 to 20.04 and I get the following error
release upgrade aborted: files required for systemd upgrade are missing:
["/lib/systemd/system/pop-upgrade-init.service",
"/lib/systemd/system/system-update.target.wants/pop-upgrade-init.service"]
Any suggestion on how to fix it?
You should not use global variables in signal handlers. If the logger is locked when the signal occurs, this could cause a deadlock. The atomic on the next line is okay because it has known ordering.
Originally posted by @jackpot51 in #34
Following instructions as per https://support.system76.com/articles/upgrade-pop/#advanced-install-terminal:
pop-upgrade release upgrade systemd
fails due to missing sudo
with:
/sys/firmware/dmi/tables/smbios_entry_point: Permission denied
/dev/mem: Permission denied
Event: removing deprecated and/or conflicting packages
Event: updating package lists for the current release
Release upgrade status: release upgrade aborted: failed to update package lists for the current release: command failed with exit status: exit code: 100
pop-upgrade: dbus client error: calling ReleaseUpgradeFinalize method failed
Running with sudo afterwards fails with:
Event: removing deprecated and/or conflicting packages
Event: updating package lists for the current release
Release upgrade status: release upgrade aborted: failed to update package lists for the current release: command failed with exit status: exit code: 100
pop-upgrade: dbus client error: calling ReleaseUpgradeFinalize method failed
In GNOME Settings it shows Ubuntu 19.04. I can see the Download button. Pressing it results in the same Error 100.
It also seems my sources.list
has been messed up.
Output of sudo apt update
:
Hit:1 http://packages.microsoft.com/repos/vscode stable InRelease
Hit:2 http://ppa.launchpad.net/linuxuprising/shutter/ubuntu disco InRelease
Ign:3 http://dl.google.com/linux/chrome/deb stable InRelease
Ign:4 http://old-releases.ubuntu.com/ubuntu disco InRelease
Hit:5 http://dl.google.com/linux/chrome/deb stable Release
Ign:6 http://old-releases.ubuntu.com/ubuntu disco-updates InRelease
Hit:7 http://ppa.launchpad.net/obsproject/obs-studio/ubuntu disco InRelease
Ign:8 http://old-releases.ubuntu.com/ubuntu disco-security InRelease
Ign:9 http://old-releases.ubuntu.com/ubuntu disco-backports InRelease
Hit:10 http://ppa.launchpad.net/samoilov-lex/sway/ubuntu disco InRelease
Err:11 http://old-releases.ubuntu.com/ubuntu disco Release
404 Not Found [IP: 2001:67c:1360:8001::25 80]
Err:13 http://old-releases.ubuntu.com/ubuntu disco-updates Release
404 Not Found [IP: 2001:67c:1360:8001::25 80]
Hit:14 http://ppa.launchpad.net/system76/pop/ubuntu disco InRelease
Get:15 https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/repos/debs vscodium InRelease [3,828 B]
Err:16 http://old-releases.ubuntu.com/ubuntu disco-security Release
404 Not Found [IP: 2001:67c:1360:8001::25 80]
Hit:17 http://ppa.launchpad.net/wireguard/wireguard/ubuntu disco InRelease
Err:18 http://old-releases.ubuntu.com/ubuntu disco-backports Release
404 Not Found [IP: 2001:67c:1360:8001::25 80]
Reading package lists... Done
E: The repository 'http://old-releases.ubuntu.com/ubuntu disco Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://old-releases.ubuntu.com/ubuntu disco-updates Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://old-releases.ubuntu.com/ubuntu disco-security Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
E: The repository 'http://old-releases.ubuntu.com/ubuntu disco-backports Release' does not have a Release file.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
and cat /etc/apt/sources.list
:
# deb cdrom:[Pop_OS 18.04 _Bionic Beaver_ - Release amd64 (20180612)]/ bionic main restricted
deb-src http://old-releases.ubuntu.com/ubuntu/ disco main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ disco-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ disco-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ disco-security main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ disco-security main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ disco-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ disco-backports main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ disco main restricted universe multiverse
# deb http://apt.pop-os.org/proprietary disco main
# deb-src http://apt.pop-os.org/proprietary bionic main
deb https://gitlab.com/paulcarroty/vscodium-deb-rpm-repo/raw/repos/debs/ vscodium main
We should inform our users that the support for 19.04 ends January 18. Hence, the updates for the OS upgrade page. We should probably also have a notification or even warning but let's start with the page in the settings.
The change is adding another sentence under "Pop!_OS 19.10 is available". See below.
Support automatically removing packages, including automatically removing packages which are installed but should be removed after an upgrade
Upgrading the recovery partition to a new release and then doing an install from the recovery partition, creates a second boot option in the BIOS (One labeled the original operating system, and a second with the new operating system).
This may not be an issue if the recovery partition is never upgraded except when upgrading the entire system. If that is the case, we should make sure that a second boot option isn't created on upgrade (and that the option is updated to the current OS).
Offline dist-upgrades.
Settings > About > New version available to download
Download progress
Download complete
Confirm upgrade window
Running the current version
:~$ sudo pop-upgrade release upgrade systemd
Release upgrade status: release upgrade aborted: failed to apply system repair before upgrade: error checking and fixing fstab: failed to parse the fstab file: missing dump
pop-upgrade: dbus client error: calling ReleaseUpgradeFinalize method failed
# /etc/fstab: static file system information.
# <file system> <mount point> <type> <options> <dump> <pass>
PARTUUID=7f018d10-9940-4a33-8db8-1a42366f76c6 /boot/efi vfat umask=0077 0 0
PARTUUID=dd720c27-ebae-448f-9ab1-54d0f5a81040 /recovery vfat umask=0077 0 0
# More drives here...
#Music Drive
UUID="D6FC8685FC86601B" /media/Music ntfs nodev,nosuid,nofail,x-gvfs-show
My music drive here doesn't have a dump value provided here. I was able to continue updating after I added a dump value of 0 here.
man
page for fstab"The fifth field, (fs_freq), is used for these filesystems by the dump(8) command to determine which filesystems need to be dumped. If the fifth field is not present, a value of zero is returned and dump will assume that the filesystem does not need to be dumped."
I'm under the impression that the 5th value can be assumed to be 0, but pop-upgrade
requires a value to be set. I'm not an expert on this, so if pop-upgrade
needs this value set, then that's okay. Just looking for clarification if this is intended.
Upgrading Pop!_OS 19.04 to 19.10. At the point where the download is complete and the machine reboots to begin the installation, I just got a blank screen. I power-cycled and it happened again. I then disconnected my monitor (HDMI) and my Thunderbolt dock w/ keyboard, mouse, etc. attached and rebooted a third time. At that point I got the screen requesting my password to decrypt my drive and the installation continued successfully. (In normal usage, the machine reboots fine with those devices connected. The encryption prompt appears on the laptop screen and the external keyboard works to enter the password.)
Upgrade continues in the background and succeeds.
Many users seem to be confused about why they are getting errors saying Failed to connect to an apt repository. You may not be connected to the Internet.
:
At least some of these users are probably trying to check that their upgrade to 20.04 was complete. When they are doing so, the tool actually tries to upgrade to (and fails to reach repos for) 20.10.
This is what you see when you run sudo pop-upgrade release upgrade systemd -f
on the most recent release:
Event: removing deprecated and/or conflicting packages
Event: updating package lists for the current release
Event: fetching updated packages for the current release
Event: upgrading packages for the current release
Event: ensuring that system-critical packages are installed
Event: updating the source lists to the new release
Failed to connect to an apt repository. You may not be connected to the Internet.
Found 20.04, attempting to upgrade to 20.10
NoConnection
that shows which repository requests failed. For some of the users who were confused above, seeing that it was trying to reach 20.10 repos would have answered the question.I accidentally deleted my boot partition while reinstalling from the recovery partition. I attempted to use this tool to recreate the recovery boot entry:
sudo pop-upgrade recovery upgrade from-release Recovery event: fetching recovery files
Fetched 2381/2381 MiBRecovery event: verifying checksums of fetched files
Recovery event: syncing recovery files with recovery partition
Recovery upgrade status: recovery upgrade aborted: I/O error: unable to create file at "/boot/efi/EFI/Recovery-F928-D6BE/initrd.gz": No such file or directory (os error 2)
A simple sudo mkdir -p /boot/efi/EFI/Recovery-F928-D6BE
fixed it, but the tool should probably create the directory if it doesn't exist!
For me the official upgrade manuals also don't work. i get the message: failed to upgrade os: failed status: fetch of package x (where x is every time a different library). error trying to connect: network is unreachable. although i have a stable internet connection.
on my other devices where i have ubuntu everything worked via the command line. unfortunately not for pop-os.
none of the other terminal commands worked, these are:
apt full upgrade
and
pop-upgrade release upgrade
After completing an upgrade from 19.04 to 19.10, there is a failure and Pop cannot switch from Intel to Nvidia graphics.
Upon booting to the upgraded installation, apt
says there are 7 packages that aren't fully installed or removed.
These appear to be:
nvidia-dkms-435
system76-dkms
system76-io-dkms
nvidia-driver-435
nvidia-driver-418
system76-driver
system76-driver-nvidia
We want to:
Notify the user when an upgrade is ready for download.
Notify the user when the upgrade is ready to happen
The OS Upgrade
section mentions the dismiss notifications button. It should be made clear that this button should only be shown on a LTS release (18.04). On other releases this option should not be shown at all.
While there is no available upgrade right now, adding it to 19.10 will show users that the system is up to date. (and prepare us for new features coming soon ™️ )
I installled the newest updates using the popshop. After that problems strated to appear when trying to upgrade packages via terminal. Here the output:
sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Do you want to continue? [Y/n] Y
Setting up linux-image-4.18.0-15-generic (4.18.0-15.16pop2) ...
Processing triggers for linux-image-4.18.0-15-generic (4.18.0-15.16pop2) ...
/etc/kernel/postinst.d/initramfs-tools:
update-initramfs: Generating /boot/initrd.img-4.18.0-15-generic
cryptsetup: WARNING: Resume target cryptswap uses a key file
kernelstub.Config : INFO Looking for configuration...
Traceback (most recent call last):
File "/usr/bin/kernelstub", line 244, in
main()
File "/usr/bin/kernelstub", line 241, in main
kernelstub.main(args)
File "/usr/lib/python3/dist-packages/kernelstub/application.py", line 141, in main
config = Config.Config()
File "/usr/lib/python3/dist-packages/kernelstub/config.py", line 50, in init
self.config = self.load_config()
File "/usr/lib/python3/dist-packages/kernelstub/config.py", line 60, in load_config
self.config = json.load(config_file)
File "/usr/lib/python3.6/json/init.py", line 299, in load
parse_constant=parse_constant, object_pairs_hook=object_pairs_hook, **kw)
File "/usr/lib/python3.6/json/init.py", line 354, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.6/json/decoder.py", line 355, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting ',' delimiter: line 17 column 7 (char 287)
run-parts: /etc/initramfs/post-update.d//zz-kernelstub exited with return code 1
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
dpkg: error processing package linux-image-4.18.0-15-generic (--configure):
installed linux-image-4.18.0-15-generic package post-installation script subprocess returned error exit status 1
Errors were encountered while processing:
linux-image-4.18.0-15-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)
The following is what the recovery partition upgrades screens currently look like. Questions/Concerns I have:
Any other thoughts?
Not sure if this is the right place but just updated to kernel 5.0.0.16 from 5.0.0.15 using apt install.
Now I can not login to my pop-os install. Gives an automatic auth error. My password is the same I checked with the recovery mode. More of what happened is outlined here.
https://old.reddit.com/r/pop_os/comments/by2055/help_system_broken_1904/
The changelog for 18.10 and 19.04 need to be created to be utilized in displaying the changelog from 18.04->19.10.
New to rust and makefiles - how do I install this? Or is this not ready for prime-time?
There are loads of unquoted variables here. I think this can be taken care of post-merge
Originally posted by @jackpot51 in #34
Process:
pop-upgrade recovery upgrade from-release
Test on:
EDIT: This will upgrade the recovery partition to the next release
Users are trying to run the daemon to check log messages. This usually won't help them because
pop-upgrade daemon
happily spawns a new process in the foreground that prints a few INFO lines and looks as if it is listening for new events.pop-upgrade
service, so that daemon is likely running in the background on most users' systems.pop-upgrade release
will not necessarily (or never?) connect to the new daemon process.The result is that logging still happens invisibly in the system daemon process and users get no feedback. (See the links in #98 for references to at least some other issues where users were confused by this behavior when trying to debug an unrelated error.)
Trying to run a daemon while the daemon is already running should print an error message and exit.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.