In some situations, like when building a device package with pmb,
deviceinfo may not exist in the rootfs. mkinitfs 2.2's behavior changed
slightly to fail if it can't find a deviceinfo, and this avoids calling
it in those cases.
[ci:skip-build]: Already built successfully in CI
1. Move all configs from /etc/NetworkManager/conf.d to
/usr/lib/NetworkManager/conf.d since the latter is more appropriate for
distribution-provided config files. In particular this means apk will
update them when the package file is changed rather than creating
`.apk-new` files. If a user wants to override such a file, they can create
a file with the same name under /etc/NetworkManager/conf.d
2. Move all dispatcher scripts from /etc/NetworkManager/dispatcher.d to
/usr/lib/NetworkManager/dispatcher.d for the same reason.
3. Rename all configs to have a "50-" prefix so that users can add their own
"99-" overrides with a guarantee that they'll be processed after
distribution-provided configs.
4. Rename dispatcher scripts to have a "50-" prefix instead of "85-" and "99-"
since they're distribution-provided files.
5. Move 50-tethering.conf from the base-ui package to
the base-ui-networkmanager package.
There are also some device packages that put config files without a numeric
prefix in /etc/NetworkManager/conf.d . This MR doesn't change those.
[ci:skip-build] already built successfully in CI
Configure NetworkManager to randomize the MAC address during WLAN scans
and of WLAN and Ethernet ifaces per connection. This reduces the
possible tracking that might occur based on MAC addresses with WiFi
hotspots. This matches the behavior of Android: it uses a random MAC
address during a WLAN scan and a random one per connection.
[ci:skip-build]: already built successfully in CI
Make it possible to load modules from the file installed by devicepkg-dev,
that will be there when extra modules are needed. This is coded in a
backwards-compatible way, so that it can be independent of the main modules
MR.
The code changes create a new function which takes a list of modules
and possibly a file (that should contain a list of modules too). The
idea is to be able to support also loading modules for initramfs-extra
in the future, and having a similar file would be more convenient than
extracting all the modules each time. In addition, the "[ -d /lib/modules]"
check has been removed. If there's no modules directory, as all
modules might be built-in, modprobe will fail, but that will not be
fatal. This will most likely only exclusively happen in some android
downstream kernel, so it should not be a big concern.
Since we've now finally removed telnetd from the main initramfs but we
still need telnetd for the debug-shell, add it to the files for that
hook.
Also make sure the list of files is sorted.
This appears to be an ancient leftover from the telnet-based FDE
unlocking mechanism that has been present many many years ago.
But since this was removed a while ago, it's time to also finally remove
telnetd from the initramfs.
Nvidia Tegra devices have APX mode which allows to flash/debrick
a device even with broken bootloader. It also allows to sideload
bootloader which is useful when porting a new bootloader.
Some devices have a key combination to enter this mode, some devices
don't have one. This hook alters two Tegra PMC registers which
causes device to enter APX mode. It works on the most devices
including some of those that don't have a key combination for APX.
Usage:
pmbootstrap initfs hook_add apx
pmbootstrap flasher boot
[ci:skip-build]: already built successfully in CI
The ovos package is now available in Alpine for aarch64 too. Enabling
the package for aarch64 again fixes the currently failing bpo images for
master:pine64-rockpro64:plasma-bigscreen.
[ci:skip-vercheck]: modifying arches only
[ci:skip-build]: already built successfully in CI
Since the original "Loading..." splash is being shown before the hooks
is being run, we should go back to the "Loading..." splash once we're
done in the hook.
[ci:skip-build]: already built successfully in CI
Since the original "Loading..." splash is being shown before the hooks
is being run, we should go back to the "Loading..." splash once we're
done in the hook.
MyCroft has seized development and the package has been removed from
aports. The OpenVoiceOS community has taken over development and has
with ovos a drop-in replacement.
Most UIs already implicitly depend on this in some way, and from the
user-facing point of view, it is sensible to have the full DB of timezones
available, in case the user wants to swap timezone or requires working
with them in different ways. Having it as a explicit dependency makes more
sense than relying on backward dependencies.
Background: https://gitlab.com/postmarketOS/pmaports/-/issues/2168#note_1426261355
[ci:skip-build]: already built successfully in CI
Add GNOME specific wallpapers with a good contrast, so lables for
launchers on top of the wallpaper can be read nicely.
Also set myself as maintainer since the original maintainer didn't
change the package since 2018.
Due to an issue, probably in bluez, the bluetooth service often fails to
start on boot. Restarting the service later make bluez start correctly.
While adding the service supervisor for just this issue isn't a great
solution, in any case having a supervisor on such an important system
service is good, and it fixes this issue also by restarting the
bluetooth service after the first failure on boot.
May 30 08:05:56 fairphone-fp4 daemon.info bluetoothd[1420]: Bluetooth daemon 5.66
May 30 08:05:56 fairphone-fp4 daemon.err bluetoothd[1420]: src/main.c:main() Unable to get on D-Bus
Also while we're editing the list of subpackages make sure they're
ordered alphabetically.
[ci:skip-build]: already built successfully in CI
Since codeaurora.org has been shut down and this project seemingly
hasn't been migrated to git.codelinaro.org, let's switch to a source
found on GitHub.
USB tethering allows users to use their phone's WiFi or WWAN interface
as an access point for the device they connect the phone with over USB.
This way, they can use their data plan with a laptop or desktop when
regular Internet access is absent.
Configure NetworkManager to manage the usb0 iface from initfs so users
can configure it in GNOME Settings or KDE. Include a NetworkManager
dispatcher script as well to handle postmarketOS' setup with unudhcpd as
we want to provide an SSH login over USB when tethering is disabled. If
tethering is enabled, unudhpcd is stopped and its functionality is taken
over by NetworkManager through an instance of dnsmasq. NetworkManager
will also configure the necessary settings to allow IP forwarding and
firewall rules during tethering. Once disabled, NetworkManager cleans up
these settings and our dispatcher script starts unudhcpd again.
Due to upstream changes, NetworkManager requires networkmanager-dnsmasq
subpackage as dependency as dnsmasq needs DBus support for
NetworkManager. Without it, NetworkManager will silently fail spawning
dnsmasq instances.
[ci:skip-build]: already built successfully in CI
GNOME Console can now launch command-line applications from .desktop
files, so they are no longer "useless" in Phosh.
gnome-extensions-app hasn't been pulled in automatically in Phosh for
long. If users install this manually, it would be confusing for it to
not show up. The app itself has an error message that explains they
need to be logged into GNOME for it to work when launched in e.g.
Phosh, so I think that should take care of UX concerns. Additionally,
this package is installed in gnome-mobile as well, where
gnome-extensions-app actually is useful.
firefox-safe-mode has been removed in Alpine:
- https://git.alpinelinux.org/aports/commit/community/firefox?id=438ee43621e1a83c8309bf7e5e14ba9fce0532ff
- https://git.alpinelinux.org/aports/commit/community/firefox-esr?id=0f324c8b39ab08cc3f504e4ae959425bec472791
Considering all of this, postmarketos-hidden-desktop-entries no longer
serves a purpose, so let's remove it.
All Asteroid apps are launched with the "invoker" which needs the
booster running. Make sure this happens when the UI starts.
Alternatively we could use superd to launch it but for a single
executable this is good enough for now.
0.8.1:
Fixes:
- get_free_space: always return an integer (MR 31)
0.8:
Features:
- Add support for gummiboot
- Many internal code improvements and bug fixes, see git log for
details
Fixes:
- Fix destination space calculation (MR 28)
- Support destination paths with spaces
[ci:skip-build] already built successfully in CI
Needed by GNOME Software since
https://gitlab.alpinelinux.org/Cogitri/apk-polkit-rs/-/merge_requests/45
GNOME Software is often installed in GNOME UI's through pmb_recommends,
but it's not a dependency in any way. To avoid spilling this service
enablement everywhere, add just the openrc subpackage from the daemon.
That means that if GNOME Software is not installed or gets uninstalled,
the daemon will crash on startup. That should not be a big deal though.
[ci:skip-build] already built successfully in CI
This uses a dispatcher script to configure filtering A and AAAA records
based on which IP versions are routable on the NM primary connection.
gojq is preferred over the 'standard' jq because it's considerably
faster... the dispatcher script took 0.89s on my L5 with jq, and 0.07s
with gojq. the difference is probably greater on slower phones... so it
seemed worth installing it.
fixes#1430
Co-authored-by: Arnavion <me@arnavion.dev>
As a preparation for #1836, move the sourcing of deviceinfo to its own
function. This should allow to have a single point in the whole of the
initramfs for the sourcing of the deviceinfo, instead of every script
that needs it sourcing it. This allows to change the way deviceinfo is
sourced in the future with a lot less effort.
It has been dropped from Alpine due to being unmaintained and it's
dependencies not building against the latest kmime (23.04) anymore
[ci:skip-vercheck]
[ci:skip-build]
We need to tell openrc-settingsd which ntp service to use, otherwise
it'll default to busybox ntpd which we don't want.
Additionally make sure openrc-settingsd service gets launched at boot
with the post-install/post-upgrade script.
[ci:skip-build]: already built successfully in CI
deviceinfo allows to disable the framebuffer which automatically
skips the splash on boot. Honor this setting as well for the shutdown
splash. Also honor the PMOS_NOSPLASH cmdline parameter as well.
[ci:skip-build]: already built successfully in CI
We removed the "install_if" of the APK plugin on GS so that one could
use GNOME Software exclusively for flatpak
[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
sudo-ldap is providing cmd:sudo/sudo-virt.
Replace files from sudo-ldap to solve conflict about /etc/sudoers
Fixes#2032
[ci:skip-build]: already built successfully in CI
Initial commit of the librem5-agps scripts from Purism. These are used
to manage the Librem5 GNSS and download AGPS data.
Signed-off-by: Alistair Francis <alistair@alistair23.me>
[ci:skip-build] already built successfully in CI
Soon openrc-settingsd (hostnamed) will uses these properties so the
information can be exposed to apps like GNOME Settings.
Let's also move the shellcheck comment to the outer scope, otherwise
we'd need four of these comments now, and let's not use ${} but just $.
Bugfix release, nothing major though. Full changelog:
https://gitlab.com/postmarketOS/postmarketos-mkinitfs/-/tags/2.1.1
Note: git was dropped as a makedepends because it's not actually
needed... I forgot that I could just set VERSION at build time. Oops.
[ci:skip-build] already built successfully in CI
This is a revert of the change introduced in 4eda0715 to support an
uncompressed initramfs-extra. osk-sdl support results in an initramfs-extra
that is too big for some devices with a small (traditional) /boot partition
Also see: https://gitlab.com/postmarketOS/pmaports/-/issues/2009
[ci:skip-build]: Already built successfully in CI
Changes the dependency from pmos-mkinitfs to pmos-initramfs, so now the
dependency chain for boot config packages is:
base -> postmarketos-initramfs -> postmarketos-mkinitfs -> boot-deploy
Sorting dependencies this way makes sense because "base" just needs an
initramfs, it doesn't care about the implementation (that currently uses
"postmarketos-mkinitfs.")
[ci:ignore-count]
[ci:skip-build] already successfully built in CI
- Move base files/modules out of package, this package now only provides
the mkinitfs tool.
- Add all required modules, these were copied over from
postmarketos-mkinitfs and sorted
- Use new exe name in trigger
- Update triggers to ignore /etc, add /usr/share/mkinitfs. No packages
should be installing into /etc/mkinitfs/
- Support building/installing docs
- Add vendored deps
- Change trigger path
This package contains base file and module lists for the initramfs /
initramfs-extra archives, along with the init.sh
The primary reason for doing this is so that changes to these
files/lists can be properly versioned (in pkgver), and (re)building
mkinitfs itself is no longer required for these changes.
- Add base file list for initramfs. The dirs at path
/usr/share/postmarketos-mkinitfs/* are "new" in mkinitfs 2.0
- Install default modules to /usr/share
- Install system config to /usr/share/mkinifs
- Add base files for -extra archive
- Create user config dirs
- Update hook dirs in init.sh, change from mkinitfs 2.0
- Remove splash images, obsolete since pbsplash
- Support uncompressed initramfs-extra
This is a dummy package that other packages can install_if on to install
the appropriate camera app for the device/UI. It's intended to be added
to pmb_recommends= for pmos-ui-* packages that want to have a camera by
default.
This contains an OpenRC service that clears the RTC wake alarm.
Users who don't want the RTC wake alarm to power on their phone from
powered-off state can use this service to clear the alarm during shutdown.
Fixes#1970
[ci:skip-build] already built successfully in CI
Fixes this failure on a new install:
ERROR: postmarketos-ui-xfce4-0.5.1-r11.post-install: script exited with error 1
[ci:skip-build]: already built successfully in CI
If pbsplash is running when a display manager starts it often causes
issues as display managers want to run on a particular VT, but are
unable to switch the active VT since pbsplash has exclusive control of
the framebuffer.
Making DMs not start until after local would solve the issue but
it would also needlessly delay the boot process.
Until we have a better way to detect display managers starting and react
to it, this will at least get devices working again. Though due to how
openrc resolves service start order it may mean the splash is killed
earlier than necessary.
These directories should also trigger a rebuild so that any changes are
reflected in the initramfs.
This will include things like 'files', 'modules' and so on that weren't
previously triggering rebuilds of the initramfs...
[ci:skip-build]: already built successfully in CI
This is no longer used by anything in pmOS as far as I can tell. One
previous user, ttyescape, has been reworked to use hkdm instead, and the
other previous user, charging-sdl, is no longer available in pmOS.
Closes https://gitlab.com/postmarketOS/pmaports/-/issues/1929
This modifies to the postmarketOS ramdisk init to use the new pbsplash
tool for displaying splash messages, replacing the old fbsplash.
This also moves the show_splash call to run as soon as possible rather
than waiting for mount_subpartitions to run (which can take a while).
Closes https://gitlab.com/postmarketOS/pmaports/-/issues/1936
Additionally, this means that iio-sensor-proxy actually gets enabled
on GNOME and GNOME mobile. Previously, it would get installed there
but not enabled unless the user manually did it.
Otherwise we don't have any document viewer installed by default.
[ci:skip-vercheck]: pkgrel bump is not necessary when changing
recommends.
[ci:skip-build]: already built successfully in CI
Add easy support for pulseaudio bluetooth like we have for pipewire
bluetooth.
Will update docs when this is merged.
[ci:skip-build]: already built successfully in CI
xdg-desktop-portal-gnome is needed for example for mime type associations.
Without it, the default gnome based shell installations couldn't detect which
mime types were provided by which applications, xdg-open and the
Default Applications tab in GNOME Control Center didn't work.
This dependency was missing from postmarketos-ui-phosh, so let's add it
and xdg-user-dirs to postmarketos-base-ui-gnome to make sure it's not repeated
in every gnome based UI.
Explicitly depend on the version that allowed mounting with UUIDs, so we
can soon set this explicit dependency for devices that now make use of
this feature.
Dependency chain:
device package
-> postmarketos-base
-> postmarketos-mkinitfs
-> boot-deploy
Related: discussion in MR 3791
mDNS queries and replies are sent to port 5353.
Update firewall rule in order to make it as tight as possible.
[ci:skip-build]: already built successfully in CI
This installs zram-init and sets it to start on boot for all
devices/UIs. The included conf.d/zram-init also allows diabling using
zram swap or overriding the size by using a deviceinfo var.
I did an analysis of the pmos base install size with the 'none' UI
selected, after depending on zram-init, and the following new package is
installed:
zram-init-11.1-r1 installed size: 40 KiB
These packages are dependencies of zram-init, however they are already
installed in the base image (with 'none' UI) so they are not counted
above:
util-linux-misc-2.38.1-r0 installed size: 6816 KiB
e2fsprogs-extra-1.46.5-r4 installed size: 1324 KiB
So this seems like a very small price to pay for the benefit of not
making the logic/implementation more complicated than this.
* Starting busybox syslog ... [ ok ]
ssh-keygen: generating new host keys: RSA ECDSA ED25519
* Starting sshd ... [ ok ]
zram swap: activating with size: 243 MB
* Loading zram module...
[ ok ]
* Swap->zram0
[ ok ]
* Starting local ... [ ok ]
This change introduces one new deviceinfo variable:
deviceinfo_zram_swap_pct: percentage of RAM to use for zram swap
Default percentages if the second var is unset are explained in the
zram-init file this commit adds. A value of 0 disables zram swap.
fixes#1133
This moves unl0kr and all of its dependencies into the initramfs-extra,
it does so by using a relatively new mkinitfs feature for installing
files into the -extra archive.
[ci:skip-build] already built successfully in CI
By positioning this after extracting the initramfs-extra archive, we can
allow udev to exist in the -extra archive and not have any size impact
on the base initramfs archive.
Any hook that needs udev in the initramfs can get that support, provided
that the hook lists udev requirements in the .files config for it.
* lock.sh is specific to Nokia N900, so move to device-nokia-n900
* use tinydm instead of lightdm
Signed-off-by: Sicelo A. Mhlongo <absicsz@gmail.com>
[ci:skip-build]: already built successfully in CI
Move some dependencies from plasma-desktop to the -extras subpackage, so
they don't get installed by default:
* audiocd-kio (2 MiB): using a CD drive with postmarketOS seems to be a
very rare combination
* kolourpaint (3 MiB): very basic image editor with featureset of MS
paint, I don't think it's that useful in a default install. Users
looking for an image editor may want to use e.g. krita instead and can
install whatever they want to use after the default install is done.
* kwrite (20 MiB): another text editor, kate (3 MiB), is already getting
installed by default
* okular (81 MiB): quite big, and pdfs can also be viewed in firefox
which we install by default
* mesa-demos (50 MiB): rather big for just being some graphical demos
It's always a good idea to keep the install image small, but in this
instance the change was prompted because we currently hit a size limit
when generating install images. In particular, when generating the
v22.12 image for the pinebookpro. The process for generating install
images is not optimized for size (see bpo issue 116) and this should be
improved, but in the meantime let's just reduce the install size with
this patch on edge and backport it to v22.12 so building this image
doesn't fail anymore.
Sizes listed above are for aarch64 and include dependencies that get
removed together with removing the package.
Users can switch to pulseaudio with:
doas apk add sxmo-audio-common-pulse
We can make the poco f1 device APKBUILD depend on
sxmo-common-audio-pulse. This allows you to install pulseaudio on Sxmo
which was the reason Joel said the poco f1 was having issues with call
audio: https://gitlab.com/postmarketOS/pmaports/-/issues/1821
After installing pulseaudio with this patch, the other side still
cannot hear me. I am posting this work so that others can just run
pulseaudio on sxmo and find out what's causing this bug.
Note by ollieparanoid: while it doesn't fix the bug completely, it seems
it's required to make calling work again, something we definitively want
to have in v22.12 so I'm merging this now. Also the sxmo-utils patch was
merged to sxmo-utils upstream, but isn't in alpine yet. Adding this
package (previous patch) temporarily makes sense.
Co-developed-by: Oliver Smith <ollieparanoid@postmarketos.org>
[ci:skip-vercheck]: pkg forked from alpine has pkgrel > 0
[ci:skip-build]: already built successfully in CI
This upgrade has no effect on postmarketOS, as there were only systemd
service files added to the repository. The upgrade is done solely to
keep track with the newest version.
[ci:skip-build] already built successfully in CI
Add rules for regulator-haptic, which is used on:
- samsung-e5/e7
- samsung-cprime/gprime
- samsung-j3/j5(x)
Note that regulator-haptic is not supported on some devices yet,
and samsung-e5 is not ported at the moment.
[ci:skip-build]: already built successfully in CI
The variable describes the configfs function name to use, no matter if
it's rndis, ncm, ecm or any other function. So change the name of the
variable, the string we write to the configuration file and some
comments.
Recommend installing:
- fwupd
- Receive firmware updates for supported hardware
The following packages are required to show device information at:
- Settings -> About this System -> Show More Information
Devices
- Firmware Security
- aha
- fwupd
- PCI
- pciutils
Graphics
- OpenGL
- mesa-demos
- Vulkan
- vulkan-tools
- Wayland
- wayland-utils
- X-Server
- xdpyinfo
Change-Id: I8a1eb484720f717f0504418f7c5c6af505b081b6
Signed-off-by: Alexander Martinz <amartinz@shiftphones.com>
[ci:skip-build]: already built successfully in CI
flatbuffers should have been available on armv7,
since aports 0f3295fb0660f5caf59b8b2385f7c9305f1d57f0
[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
kgx was renamed to gnome-console with the release of version 42.beta, so
let's reflect that in our Phosh UI package.
[ci:skip-vercheck]: pkgrel bump is not necessary when changing
recommends.
Instead of using the uevent helper binary, mdev daemon listens for kernel
events using the netlink interface. Then the requirement of enabling
UEVENT_HELPER for pmOS kernels can be dropped, as it's use is discouraged.
From CONFIG_UEVENT_HELPER kernel config help:
> This should not be used today, because usual systems create many events
> at bootup or device discovery in a very short time frame. One forked
> process per event can create so many processes that it creates a high
> system load, or on smaller systems it is known to create out-of-memory
> situations during bootup.
Support for running mdev as a daemon was added in 2019 with commit [1].
From that same commit:
> Adds the -d option to run mdev in daemon mode handling hotplug events
> from the kernel like udev. If the system generates many hotplug events
> this mode of operation will consume less resources than registering
> mdev as hotplug helper or using the uevent applet.
[1] https://git.busybox.net/busybox/commit/?id=498cec202adbf69a7a72af5e204260682d614183
[ci:skip-build]: already built successfully in CI
Fixes:
- Fix installation with FDE
- Use new path to kpartx (MR 16)
Other:
- pmos_install: Increase boot partition size to 256MB (MR 14)
- pmos_install_functions: make shellcheck happy
- update-binary: make shellcheck happy
[ci:skip-build] already built successfully in CI
There is "iifname "wwan*" drop" defined in 01_wwan.nft, which drops
any not "established, related" incoming packet from WWAN.
[ci:skip-build]: already built successfully in CI
Drop replaces, provides for postmarketos-config-firefox. This was the
name of the package until August of 2020, not relevant anymore. Also
the provides didn't have pkgrel and therefore was wrong.
apk treats provider_priority=0 as if it is not there, not as lowest
value. The previous patch set it to =10 for …-sxmo-de-sway, so set it to
=5 for the dwm version.
Related: c21f61ddd8/src/solver.c (L713-721)
apk ignores a provider_priority of 0. In order to have …-sxmo-de-dwm
have a lower provider priority than …-sxmo-de-sway, set a higher
priority than 1 for the sway version.
Alpine has changed location and package name of ttf-dejavu
fonts, adjust to new location.
Without this, fbkeyboard service crashes with error:
unable to load font file: No such file or directory
Default font path is hardcoded [1] to
"/usr/share/fonts/ttf-dejavu/DejaVuSans.ttf".
Luckily there is a CLI switch to change default, use it.
[1] https://github.com/bakonyiferenc/fbkeyboard/blob/master/fbkeyboard.c#L37
Text Editor is a new modern text editor for GNOME. It is the new
default, replacing gedit upstream. As such, let's do the same here
downstream.
[ci:skip-vercheck]: pkgrel bump is not necessary when changing
recommends.
[ci:skip-build]: already built successfully in CI
- Support for the huawei-g7 display panel in lk1st
- FS based boot is skipped when going to the recovery
- Generate image without appended dtb for lk2nd-msm8226
- Some bug fixes and device improvements
New devices:
- Samsung Galaxy Ace 4 (SM-G357FZ)
- Samsung Galaxy Grand 2 (SM-G7102)
- Samsung Galaxy Grand Max (SM-G720AX)
- Samsung Galaxy Tab 4 10.1 (2014) (SM-T530)
- Huawei Ascend G6 L11 LTE
- Some new variants for the existing Samsung devices
Changelog: https://github.com/msm8916-mainline/lk2nd/releases/tag/0.13.0
This has been out-of-date for almost a year with seemingly stalled
progress on the existing upgrade MR[1] for months now; it really seems
like no one wants to maintain this which currently leaves this
"force-installed-by-default" packaged image broken on all wlroots-based
Wayland compositors for example.
[1] https://gitlab.com/postmarketOS/pmaports/-/merge_requests/3091 ("Draft: main/waydroid-image: upgrade to 17.1.20220419")
At the moment almost all device packages force installation of the Mesa
drivers, even when they are not used by any application (for example on
a minimal headless installation with "none" or "console" UI).
Omitting mesa-dri-gallium from such installations saves about ~150 MiB
of disk space (469 MiB -> 317 MiB rootfs for minimal installation on
arrow-db410c).
The "classic" drivers have been removed from Mesa so only one mesa-dri-
package exists now: mesa-dri-gallium contains all Mesa drivers,
llvmpipe, freedreno, lima, panfrost, Intel (iris/crocus), ...
This means we can easily create an install_if package in
postmarketos-base that installs that driver package only if needed
(= only if another package requires the "mesa" package).
Strictly speaking the install_if could be restricted further since
mesa-dri-gallium is only needed by "mesa-egl", "mesa-gbm" and "mesa-gl"
but not e.g. the Vulkan drivers. Having three postmarketos-base
subpackages (one install_if for each of them) seems a bit
overengineered, though. "mesa" is a common dependency of all three
of them, so using install_if="... mesa" should be good enough.
renamed in aports@ee78772612
this also adds an explicit dependency on the font, since it may not have
been installed if postmarketos-ui-base was installed... (e.g. ui=None)
The xfce4-battery-plugin doesn't need to be installed anymore since we
switched to the "power manager plugin" in postmarketos-ui-xfce4 0.5.0.
The link to the old PostmarketOS icon isn't needed anymore for new
installations.
[ci:skip-build]: already built successfully in CI
This is possible now that all SDL (1) applications use sdl12-compat
instead of "classic" SDL 1.2. Note that this only is applied to user
interfaces that use Wayland and are launched through tinydm.
See https://gitlab.alpinelinux.org/alpine/aports/-/issues/12739
Don't build with !tracedeps, as otherwise the isl dependency is not
properly added to the built gccs. In practice this probably doesn't
matter since we only use these old gccs to build kernels in the native
chroots (not via crossdirect in foreign arch chroots), and we also
install a proper gcc in the native chroot that pulls in the isl
dependency. But fix it for correctness.
Related: pmaports issue 1732
[ci:skip-build] Already built successfuly on CI in MR
We already ship Angelfish and shipping 2 browser takes up a lot of
space. Besides Angelfish feels more native in Plasma Mobile (being baed
on Qt and made for mobile) and has a built-in adblocker nowadays so it
seems like the better option.
urfkill hasn't been used for quite a while, no need to keep it around
Motivation for this change is that the image builds of the UI are
currently running out of space so we need to decrease the image size
Actually package pulseaudio is needed instead of pulseaudio-utils.
Package pulseaudio-utils then gets drawn in by postmarketos-base-ui
sub-package pulseaudio.
For Xfce4 this is a cosmetic change because pulseaudio gets installed
as a dependency of pavucontol already. Keeping pulseaudio in the
_pmb_reccomends list makes sense to be clear which pieces are needed.
For MATE an explicit installation of pulseaudio is needed because it
doesn't use pavucontrol.
[ci:skip-vercheck]
[ci:skip-build]: already built successfully in CI
Since c49d84f4ab1856156d26d59f5c88387776990d24 in Alpine's aports,
the sm.puri.OSK0.desktop service no longer tries to execute
/usr/bin/osk-wayland and instead just executes /usr/bin/squeekboard
directly, thus avoiding this needless indirection. virtboard hasn't
existed in postmarketOS for years at this point and squeekboard is
a hard dependency of phosh, so it's always going to be present
(thus making this check unnecessary) and the fallback if it isn't
wouldn't work anyway.
[ci:skip-build]: already built successfully in CI
At this point the only application preconfigured to be scaled was GNOME
Maps, which nowdays adapts just fine to narrow screens. Having it scaled
like this by default only degrades the user experience by making UI
elements tiny and hard to interact with.
Closes https://gitlab.com/postmarketOS/pmaports/-/issues/1716
This would mitigate issues where apk unexpectedly replaces packages
somewhat as this way the user will be able to see precisely what changes
will happen to their system before they are committed. Furthermore, most
users are likely accustomed to package managers like apt, dnf, pacman,
among others that all are interactive by default and as such this would
provide a more familiar experience for them.
This will not affected pre-existing installs, and advanced users who
do not like this behaviour can restore the old one by deleting
/etc/apk/interactive.
[ci:skip-build]: already built successfully in CI
After PulseAudio support for MATE sound was enabled in Alpine Linux,
its interfaces are now available in the native MATE sound settings.
The additional PulseAudio volume control application therefore became
redundant.
[ci:skip-vercheck]
Don't install the experimental gnome-mobile forks of gnome-shell and
mutter in regular GNOME. These are probably more stable, and most
importantly this prevents accidental uninstallation of gnome-shell
without installing gnome-mobile-shell.
Revert the addition of the gnome-shell dependency to
postmarketos-ui-gnome. This isn't needed anymore and caused further
issues.
Fixes: issue 1701
Since merging the gnome shell on mobile MR 3404, gnome-shell needs to be
explicitly installed or else it gets removed on upgrade.
[ci:skip-build]: already built successfully in CI
It's broken and I currently don't have any interest in fixing it or
maintaining it in general. If somebody wants to package it later they
can always restore it
Previously only cross/gcc{4,6}-* packages were adjusted in MR 3419, but
these packages need to be adjusted as well.
Fix for error shown in upstream_compat check:
Increase 'gcc6' pkgrel (10 -> 11), missing depend(s): isl
Increase 'gcc4' pkgrel (5 -> 6), missing depend(s): isl
Related: pmbootstrap issue 2167
[ci:skip-build] Already built successfully once
Firefox packaging changed upstream, renaming the desktop files. This
caused the mime applications to be stale, so update those.
See also
https://gitlab.alpinelinux.org/alpine/aports/-/issues/13983
[ci:skip-build]: already built successfully in CI
The sole purpose of this subpackage was to work around that Firefox's
.desktop file did not match the GTK app ID. This has been fixed as of
the commit linked below, so drop the subpackage.
See 525736254c
The firefox-esr package in versions >= 102.2.0-r1 installs to
/usr/lib/firefox-esr instead of /usr/lib/firefox, adjust FIREFOX_DIR
to match. Install for both firefox-esr and firefox now.
[ci:skip-build]: already built successfully in CI
Although qt5-qtvirtualkeyboard is used by SDDM, in a Plasma session
itself maliit-keyboard is used instead
[ci:skip-build]: already built successfully in CI
Bootmac configures the MAC addresses of WLAN and Bluetooth interfaces at boot.
Bootmac can be invoked in various ways at boot, but currently only udev rules are tested.
Bootmac generates MAC addresses from the `serialno` provided by Android bootloaders
through /proc/cmdline or from /etc/machine-id. The Organizationally Unique Identifier (OUI)
is retrieved from a lookup database macdb by matching deviceinfo_manufacturer
from /etc/deviceinfo with the entries in the database.
See https://gitlab.com/postmarketOS/bootmac
Bump the pkgrel of gcc4 and gcc6, and regenerate the cross/* versions
with "pmbootstrap aportgen gcc6-armv7" etc.
Should fix these errors:
Error loading shared library libisl.so.22: No such file or directory (needed by /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1)
Error relocating /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1: isl_union_map_free: symbol not found
Error relocating /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1: isl_map_from_pw_aff: symbol not found
Error relocating /usr/gcc6/libexec/gcc/x86_64-alpine-linux-musl/6.4.0/cc1: isl_schedule_from_domain: symbol not found
...
Related: 54749a5222
[ci:skip-build]: already built successfully in CI
Alpine does not use setup-udev anymore and provides the same
functionality through setup-devd. The setup-udev script was deleted [1]
but postmarketos-base still used it and caused pmbootstrap to fail when
building a device image. Use the rc-service setup directly from
setup-devd.
[1] b56c4c2b9d
Adjust UIs that pre-install megapixels (not megapixels-gtk3) to also
recommend using postprocessd. This pulls in opencv, but overall improves
the usability of megapixels a lot so it seems worth installing by
default.
[ci:skip-vercheck]: _pmb_recommends doesn't need a pkgrel bump
dzImage generation tool for Tizen devices. The same dzImage format is
used in all Samsung's Tizen devices (Spreadtrum, Qualcomm, Exynos), so
we pick the latest script from the Tizen's Exynos kernel package.
Prior to this commit, the initramfs was unable to resize the root
partition if it was on a device backed by the device mapper. This commit
fixes that now that it is possible for the root partition to lie on a
device mapper device.
gnome-icon-theme has been dropped in alpine edge in favor of
adwaita-icon-theme. Adjust the _pmb_recommends of the Sxmo UI packages.
Fix for:
package 'gnome-icon-theme' from _pmb_recommends not found for arch 'x86_64'
Related: b24abe8a2c
Related: https://gitlab.com/postmarketOS/pmaports/-/jobs/2593231817
[ci:skip-vercheck]: changing _pmb_recommends doesn't need version bump
While GNOME does require hardware acceleration, GNOME's X11 mode
(not sure about Wayland mode) does work without DRM support, so
it works fine with software rendering on devices without a working
GPU as long as fbdev works.
I think this raises the question of whether we should rename
pmb:hw-accel to pmb:drm as e.g. Phosh should work without 3D
acceleration if a device e.g. uses a kernel with SimpleDRM support,
but that is out of scope for this MR/commit.
Effectively reverts 638362de63
[ci:skip-vercheck]
Fixes 02dfe83c4b
The previous `provides="mkinifs=3.6.0"` was a requirement because alpine's
kernels had a minimum dependency in `mkinitfs>=3.6.0` to make sure that
support for compressed modules existed. That requirement is no longer
in place[1], since the dependency is now on the `initramfs-generator`
virtual package. Also, since `initramfs-generator` is a virtual package
and not a real package, versioning it might mess up APK. The documentation
explictly states that virtual packages are those with unversioned provides
and a provider_priority. So to avoid having problems in the future, let's
strictly stick to it.
[1] 4fac61c826
Alpine provides a 'initramfs-generator' thing now that the alpine
linux-* depend on explicitly. This sets postmarketos-mkinitfs to be the
preferred provider of that virtual package.
Fixes:
ERROR: unable to select packages:
postmarketos-mkinitfs-1.4.1-r5:
conflicts: mkinitfs-3.6.1-r2[mkinitfs=3.6.0]
satisfies: postmarketos-base-20-r1[postmarketos-mkinitfs]
postmarketos-base-nofde-20-r1[postmarketos-mkinitfs]
.pmbootstrap-20220610.215815[postmarketos-mkinitfs]
.pmbootstrap-20220610.215815[mkinitfs]
mkinitfs-3.6.1-r2:
conflicts: postmarketos-mkinitfs-1.4.1-r5
satisfies: .pmbootstrap-20220610.215815[mkinitfs]
linux-rpi-5.15.45-r1[initramfs-generator]
.pmbootstrap-20220610.215815:
masked in: cache
satisfies: world[.pmbootstrap=20220610.215815]
Also see:
30d7b88324 (aports) main/mkinitfs: provide initramfs-generator
4fac61c826 (aports) main/linux-lts: replace mkinitfs with initramfs-generator
There was lately a discussion upstream due to apk 2.12.10 breaking
some packages in aports[1]. The conclusion in IRC is that provides
were designed to be either versioned or have a provider_priority.
Otherwise, the provides will be treated as a "virtual package".
Which is not what we want here.
[1] https://gitlab.alpinelinux.org/alpine/apk-tools/-/issues/10847
The patch was meant well. But there are problems with yelp in its
current form in postmarketOS:
* It's practically empty. In the default install, there is only one
application that has some sort of help text, which is Chatty. But
when you click on the entry, there is only one line of generic
information about the app. Not useful for users.
* Yelp is not adapted for small screens, the one line of help text is
cut off on the PinePhone.
So let's not ship it by default in edge and v22.06 for now.
This reverts commit 5ef50b12f2.
[ci:skip-vercheck]: modifying _pmb_recommends doesn't need a version
bump.
At the moment, mkinitfs loads some file system modules always (ext4),
some dynamically (brtfs) and some not at all (f2fs, vfat), expecting
them to be built-in.
To support generic kernels (e.g. from Alpine) properly, use the
partition type detection for both boot and root partition and always
load the necessary modules before mounting.
An increasing number of devices relies on the vfat file system in the
initfs (e.g. for UEFI boot). Having to add all the modules required for
it to work to deviceinfo_modules_initfs is annoying and inconsistent,
in particular for the additionally chosen "nls" modules. Since we
already bundle several file systems by default, let's just add vfat
as well to simplify this.
Ideally mkinitfs should detect the file systems chosen at install time
in the future and only include the necessary modules, but until then
this just adds a couple of kilobytes to the initramfs.
closes#1515
This patch HAS NOT been tested to see if it actually fixes#1515. I do
not have my pinephone keyboard with me and will not till v22.06 is out.
Can someone please test this patch before merging?
Note: this is being merged upstream but needs a refactor of the
Makefile. See:
https://lists.sr.ht/~mil/sxmo-devel/patches/32630
Since we cannot get the refactor of the Makefile out before the next
release, this is the next best thing
[ci:skip-build] already built successfully in CI.
This replaces the previous `udevadm test` hack with a combination of
`udevd`, `udevadm trigger` and `udevadm settle` in order to coldplug all
available devices and make them available for use via libinput / unl0kr.
Relates to: #1411
[ci:skip-build] already built successfully in CI
We decided against pvr hacks, quoting craftyguy from issue 1316:
> We discussed this in our team meeting, and ultimately decided that
> supporting pvr in pmaports/pmOS has many of the same problems that
> we saw when trying to support hallium/libhybris, something we
> decided against. For much of the same reasons, we've decided that we
> want to avoid adding the proprietary userspace components required to
> support pvr in pmOS.
No device port is using this package anymore, but we forgot to remove
it. After branching v22.06 I realized that it doesn't build anymore
and as stated in MR 2702, it's unmaintained.
Related: https://builds.sr.ht/~postmarketos/job/767700
Fix the build failure when built with newer gcc:
/home/pmos/build/src/gcc-6.4.0/gcc/config/i386/i386.c: In function 'int function_arg_advance_32(CUMULATIVE_ARGS*, machine_mode, const_tree, long int, long int)':
/home/pmos/build/src/gcc-6.4.0/gcc/config/i386/i386.c:8743:18: error: converting to 'bool' from 'std::nullptr_t' requires direct-initialization [-fpermissive]
8743 | bool error_p = NULL;
| ^~~~
Patch source: https://svnweb.freebsd.org/ports/head/lang/gcc7/files/patch-gcc_config_i386_i386.c?view=markup&pathrev=545751
Fix the build failure when built with newer gcc:
/home/pmos/build/src/gcc-4.9.2/gcc/reload1.c:89:24: error: use of an operand of type 'bool' in 'operator++' is forbidden in C++17
89 | (this_target_reload->x_spill_indirect_levels)
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
/home/pmos/build/src/gcc-4.9.2/gcc/reload1.c:444:7: note: in expansion of macro 'spill_indirect_levels'
444 | spill_indirect_levels++;
| ^~~~~~~~~~~~~~~~~~~~~
Patch source: https://github.com/ChrisMacGregor/esp-open-sdk/blob/master/1001-fix-reload1-compile-error.patch
This should be reverted when this Alpine issue has been closed:
https://gitlab.alpinelinux.org/alpine/aports/-/issues/13778
sxmo-common already had this for some reason.
[ci:ignore-count]
[ci:skip-build] Already built successfuly on CI in MR
the networkmanager package in alpine was refactored and the wifi and
wwan components were split off into separate subpackages. without these,
wifi and wwan networking are broken.
also see: aports 830af82c6c
[ci:ignore-count]
This code wasn't actually working for me on samsung-m0, so I
investigated and came up with that this fixes it. I'm not sure if you
are supposed to be able to omit the deviceinfo_ prefix? Either way, it
doesn't seem to work, so let's fix it.
Fixes fad7c7ef8e
XWayland is a phosh dependency. Having it in pmb_recommends adds
nothing and can be confusing, since power users would expect that
removing it from world would remove the package. That will never
be the case since phosh depends on it.
[ci:skip-build] already built successfully in CI
Adding bluez to "depends" in order to enable bluetooth service (doesn't
work on packages in "_pmb_recommends").
Adding blueman to "_pmb_recommends" to allow uninstallation by the
user.
Closes https://gitlab.com/postmarketOS/pmaports/-/issues/1465
nmcli and nmtui are still missing in Gnome.
Move NetworkManager dependencies from postmarketos-ui-phosh, and phosh
will get them when depending on postmarketos-ui-gnome.
postmarketos-ui-i3wm|mate.post-deinstall:
Contains removal of file "61-autologin.conf"|"65-autologin.conf".
However, this file is removed by apk automatically unpon
deinstallation.
postmarketos-ui-i3wm|mate|xfce4.pre-deinstall:
Contains disabling service "lightdm". Removing display manager service
upon deinstallation isn't done by other UIs either. It can lead to
unexpected behaviour when installing another UI using lightdm and then
uninstall MATE UI.
Additionally
postmarketos-ui-i3wm.post-upgrade:
Removed postmarketos-ui-i3wm.post-upgrade and replaced it with a link to
postmarketos-ui-i3wm.post-install, like it's done in MATE and Xfce4.
I usually end up installing it on new installs. Why not enable it by
default and have a more polished experience for users? Most users will
use a gtk app and/or use the gtk file chooser
mesa-egl is usually installed by dependencies of ui packages, but when
choosing the "none" ui option in pmbootstrap, it isn't selected, leading
to libEGL.so.1 not being found.
Add it as an explicit dependency.
[ci:skip-build]: already built successfully in CI
Add and rearrange dependencies with new apps, and fix angelfish package
name.
Adds the following packages to extras:
- alligator (rss reader)
- kasts (podcasts)
- tokodon (mastodon client)
Move neochat from a required to an extra dependency, since it's a
matrix client (which many people may not need).
Add plasma-mobile-sounds to main dependency, so that kclock (and dialer
in the future) have sounds to choose from.
Rename plasma-angelfish to angelfish dependency since plasma-angelfish
was renamed in alpine at some point.
Remove the part of the description of the package that says numeric
passwords are required (no longer the case).
When moving the code to it's own repo I changed the license to GPL-2.0,
I forgot to update the APKBUILD.
[ci:skip-build] already built successfully in CI