Migrate from Milky Way v0.2 to v0.3
Since Hyperbola migrated from systemd's Filesystem Hierarchy used by Arch to the Filesystem Hierarchy Standard (FHS), it is required that you follow this migration article carefully and in the proper sequence when migrating from Milky Way v0.2.
What is the Filesystem Hierarchy Standard (FHS)?
The Filesystem Hierarchy Standard (FHS) defines the main directories and their contents in GNU/Linux and other Unix-like computer operating systems such as HyperbolaBSD. See our article for further details.
Warning
Migration
Run the live image and mount your root partition to /mnt. Replace /dev/sdX with your actual root partition.
# mount /dev/sdXY /mnt
# cryptsetup luksOpen /dev/sdXY hdd
# mount /dev/mapper/hdd /mnt
If you are using LVM, you will need to mount the volume as the root partition.
# mount /dev/mapper/matrix-rootvol /mnt
If you are having trouble locating your root partition, try using:
# lsblk
This command will print a list of drives, partitions, and volume groups.
Remove custom packages and orphaned ones
# pacman --root /mnt -R $(pacman --root /mnt -Qqm)
# pacman --root /mnt -Rdd $(pacman --root /mnt -Qqm)
Update database
# nano -w /etc/pacman.conf ------------------------------------------------------------------------- [multilib] Include = /etc/pacman.d/mirrorlist
Update the live image environment's package database:
# pacman -Syy
Update the /mnt environment's package database.
# pacman --root /mnt -Syy
Export the missing binaries folders to the PATH variable
# export PATH="$PATH:/bin:/sbin:/usr/sbin"
Fix package database
# pacman --root /mnt -D --asdeps $(pacman --root /mnt -Qqe)
# pacman --root /mnt -D --asexplicit $(pacman --root /mnt -Qqtd)
Update the filesystem
The filesystem has significantly changed since v0.2.9, and requires manual upgrading.
# pacman --root /mnt --cachedir /mnt/var/cache/pacman/pkg -S filesystem
Update all packages
# pacman --root /mnt --cachedir /mnt/var/cache/pacman/pkg -Suu
Reinstall all non-explicitly installed packages
# pacman --root /mnt --cachedir /mnt/var/cache/pacman/pkg -S --asdeps $(pacman --root /mnt -Qqd)
Reinstall all explicitly installed packages
# pacman --root /mnt --cachedir /mnt/var/cache/pacman/pkg -S $(pacman --root /mnt -Qqe)
Chroot into the installed system
# arch-chroot /mnt
Reinstall all packages again
# pacman -S --asdeps $(pacman -Qqd)
# pacman -S $(pacman -Qqe)
Regenerate the kernel image
# mkinitcpio -p linux-libre-lts
Reinstall Bootloader
Depending on your installed bootloader, you will need to reinstall it to obtain the latest changes from v0.3.
GRUB
# grub-install /dev/sdX
# grub-mkconfig -o /boot/grub/grub.cfg
UEFI
# mkdir /boot/efi
# mount /dev/sdXY /boot/efi
# cp -vi initramfs-linux-libre-lts* vmlinuz-linux-libre-lts /boot/efi/efi/hyperbola/
Complete the migration
Exit from chroot
# exit
Unmount and reboot
# umount -l /mnt
Reboot system
# reboot
Then login into the new Milky Way v0.3!
After migration
This version of Milky Way contains 3 notable changes:
- The adoption of LibreSSL as default provider of Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols
- The adoption of Xenocara as default provider of display server for the X Window System
- All UXP applications now have their own profile directory.
LibreSSL
LibreSSL is a version of the TLS/crypto stack forked from OpenSSL in 2014, with goals of modernizing the codebase, improving security, and applying best practice development processes.
It was forked from the OpenSSL in April 2014 as a response by OpenBSD developers to the Heartbleed security vulnerability in OpenSSL, with the aim of refactoring the OpenSSL code so as to provide a more secure implementation.
If you have local or custom OpenSSL linked packages, they need to be rebuild against LibreSSL. There will likely be broken packages.
It includes packages with direct dependencies on:
- openssl
- openssl-1.0
- lib32-openssl
- lib32-openssl-1.0
Also packages with link to:
- libssl.so.1.1
- libssl.so.1.0
- libcrypto.so.1.1
- libcrypto.so.1.0
Xenocara
Xenocara provides a framework to host OpenBSD modifications and to automate the build of the modular X.Org components, including 3rd party packages and some software maintained by OpenBSD developers.
It includes a customised X.Org X server that utilises a dedicated _x11 user by default to drop privileges and perform privilege separation in accordance to OpenBSD's least privilege policy. Furthermore, Xenocara includes several other projects, such as cwm, a stacking window manager for the X Window System.
If you have local or custom X.Org linked packages, they need to be rebuild against Xenocara. There will likely be broken packages.
It includes packages with direct dependencies on:
- xorg-*
Also packages with link to:
- libX*.so*
# pacman -S xenocara-server
UXP applications
Beginning with v0.3, Iceweasel-UXP, Icedove-UXP, and Iceape-UXP now reside in ~/.hyperbola rather than ~/.mozilla which was kept for compatibility reasons during the Firefox 52 era.
$ mkdir -p ~/.hyperbola/iceweasel-uxp
$ cp -a ~/.mozilla/firefox/* ~/.hyperbola/iceweasel-uxp
For Icedove-UXP:
$ mkdir -p ~/.hyperbola/icedove-uxp
$ cp -a ~/.mozilla/thunderbird/* ~/.hyperbola/icedove-uxp
For Iceape-UXP:
$ mkdir -p ~/.hyperbola/iceape-uxp
$ cp -a ~/.mozilla/seamonkey/* ~/.hyperbola/iceape-uxp
When you are certain all applications have been successfully migrated, you may delete the old ~/.mozilla folder and it's sub-directories.