The lack of rationales for device categorization has lead to a lot of
discussions, misunderstandings, and frustrations, as of why the
requirements are the way they are. Even though it's always good to
keep improving and exploring ways to change our processes, having
rationales can help to explain the "why"s that do not really get
addressed by the "how"s of the actual requirements. Hopefully, this
will lead to less discussions and misunderstandings around the
specific requirements.
Closes https://gitlab.postmarketos.org/postmarketOS/postmarketos/-/work_items/146
Signed-off-by: Pablo Correa Gómez <pabloyoyoista@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8595>
This fixes two issues:
1. I was investigating why currently, pmbootstrap build --force
libcamera would fail. It turns out that the problem was possible to
reduce down to apk add eudev-dev resulting in installing eudev-dev
instead of systemd-dev, even with the systemd repository enabled.
This is because apk actually thinks it has a higher version:
name <eudev-dev> selected from selectable list
select_package: eudev-dev (requirers=1, autosel=1, iif=0, order_id=0x40005807)
consider systemd-dev-261_rc4-r0 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=100, installed=0
prefer existing package
choose as new provider
consider eudev-dev-3.2.14-r6 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=100, installed=0
select latest by requested name (greater)
choose as new provider
consider libudev-zero-dev-1.0.4-r0 iif_triggered=0, tag_ok=1, selectable=1, available=1, flags=0x0, provider_priority=20, installed=0
select latest by requested name (less)
selecting: eudev-dev-3.2.14-r6, available: 1
assign eudev-dev to eudev-dev-3.2.14-r6
disqualify_package: systemd-dev-261_rc4-r0 (conflicting provides)
disqualify_package: libudev-zero-dev-1.0.4-r0 (conflicting provides)
And why is that? It's because we have two providers here: One is
eudev-dev with a provider version of 3.2.14-r6, and the other is
systemd-dev with a provider version that is empty. This then results
in apk thinking the version number is greater, as seen above in the
verbose output. An unversioned provides= for an exact package name
match will never, ever, ever have any effect, even if the priority is
set super high, because the version number comparison is before apk
even starts looking at provider priorities.
Therefore, we should not have unversioned provides for eudev,
eudev-dev, eudev-libs and udev. Since those have fairly low version
numbers, we can just provide them with systemd's version number and
we'll be fine. This will now result in apk actually installing
systemd-dev when eudev-dev is prompted for installation.
2. After fixing the aforementioned issue, I noticed that I couldn't
build anything anymore. This is because my dependency tree would pull
in systemd and systemd-udev - completely normal. However, both
systemd and systemd-udev were providing eudev, and apk will refuse to
install two packages that provide the same thing at the same time.
The fix for this is to just not provide eudev in the top-level
systemd package and rather let systemd-udev do that.
With this, I can now finally build libcamera again!
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8857>
initramfs starts USB NCM gadget and unudhcpd for SSH login.
This requires special handling since unudhpcd is unmanaged by the
service manager until the userspace is started. Once entered in userspace,
the usb-moded-developer-mode needs to be activated which configures
NetworkManager and starts unudhcpd under the service manager.
This way, a full handover is possible and the gadgets can be properly
switched without any leftovers from the initramfs due to the unmanaged
situation.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8553>
Persisted_Captules.sh is huge (70 MB) and can cause boot-deploy failures
when doing transactions that do large modifications to `/boot/`, such as
switching kernel packages. Persisted_Capsules.sh is recreated on reboot
and we do not use it for anything currently, so it is safe to remove in a
hook.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8368>
This adds two new subpackages, one pulls in in gnome software and the
other pulls in bazaar. Both subpackages provide a new virtual
(gnome-app-provider), and the main base GNOME UI pkg now depends on
this virtual. This allows us to ship bazaar in Duranium instead of GNOME
Software, and to continue to use GNOME Software by default on mutable
pmOS.
Previously there was an "optional" dependency on a sw
app provider (gnome-software, via pmb_recommends), but I made it a hard
dependency now because:
1) I think users can expect *some* app store thing to be available
by default, and the number of users who would remove all of them is
probably approaching 0
2) Ignoring pmb_recommends made the rest of this easier to implement,
since I'm not entirely sure how pmb would react to a virtual provided
by the pkg it is processing pmb_recommends for, and I didn't want to
find out.
Fixes#4634
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8831>
Renames pre-upgrade script to post-upgrade script for non-freefirmware
subpackage.
This script creates stub files for where the waveform firmware should
be. When upgrading from 13-r0, the script detects files being there,
thus does not create the stub files. Unfortunately, since before
15-r0 those files are "owned" by the subpackage, they are removed
when upgrading, and thus the stub files are never created by the
pre-upgrade. By making this script post-upgrade, it'll recreate the
empty stub files so that the actual waveforms can be extracted by
the systemd / openrc boot-up service.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8827>
* Describe relevant changes, especially that we may make non-backport
changes if there is a patch release for a package that meanwhile has a
higher version in main already (e.g. a kernel in main is on linux
7.x.y while stable is on 6.18.z).
* Directly pushing to a stable branch should only be done during initial
branch bringup, otherwise we shall always make MRs that go through CI.
* Update formatting and title of the page.
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8812>
These conflicts in the sysext-dev-tools subpkg were intended to prevent
app store plugins from being pulled into the system extension image
(where they would not work as expected and cause confusion.) They were
causing an issue with how packages are snapshot in the duranium build CI
by causing a conflict when it tried to resolve base and sysext package
lists together (so install_if packages were included). The conflict
was from:
error: apk add --simulate failed:
ERROR: unable to select packages:
gnome-software-plugin-apk2-0.0.3-r1:
breaks: postmarketos-duranium-sysext-dev-tools-11-r0[!gnome-software-plugin-apk2]
satisfies: world[gnome-software-plugin-apk]
It's much simpler to just remove these conflicts and add these plugins
to the list of RemovedPackages in duranium's mkosi config so they are
purged before main image is finalized.
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8761>
* Note that several steps can already be done even if the community repo
is not published yet in Alpine.
* Adjusting arches in .ci/build-jobs.yaml.j2 is not needed anymore, CI
scripts read them from pmaports.cfg now.
* Branch protection: we have a v2*.* rule in place now that protects new
release branches automatically, adjust wording to just double check if
it still matches and add a link (in 2030 it will not match anymore.)
* channels.cfg: cover case that the aports branch may not exist yet in
pre-branch phase.
* Use git commit -s in example commands.
* postmarketos-ui-asteroid currently doesn't exist anymore, so we don't
need to delete it for stable.
* Add the command for regenerating cross packages.
* Remove postmarketos-repo-nightly in stable.
* Bootstrap of binary packages: tweak wording, mention that only the
main repo needs to be built for x86_64 before arm repos can be
enabled, we don't need to wait for the x86_64 systemd repo.
* Adjust to QEMU devices not being in main anymore.
* Various syntax fixes and readability improvements.
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8815>
In the previous commits,
- enabled bootloader support on 32-bit architectures,
- fixed libpwquality dependency,
- enabled libarchive and zlib supports,
- enabled xen kexec support,
- enabled valgrind support,
- added systemd-tests subpackage,
- added upstream build support.
So, let's bump the pkgrel to make them take effects.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8718>
For https://github.com/systemd/systemd/pull/39823
The upstream systemd's mkosi build requires that systemd-boot and ukify
are also built from the upstream source files.
Also, mkosi needs to pass specific source and build directories,
override default meson options, and so on. To support them, this adds
several extra environment variables support:
- $_systemd_upstream,
- $_meson_extra_configure_options,
- $_meson_builddir,
- $_upstream_srcdir.
Note, postmarketOS image built with mkosi already enables usr-merge. Hence
several symlink paths are changed when $_systemd_upstream is set.
This should not change any behavior when the above environment variables
are _not_ set.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8718>
1. Use udev's uaccess tag mechanism to permit unprivileged access to the
gpio_keys input device which reports EV_SW events such as SW_KEYPAD_SLIDE.
Thus the user can interact with the keypad slide switch under X11 without
needing to be in the input group. Do the same for the power button, even
though X11 can read it directly.
2. Drop acpid and related configurations. This removes the dependency on user
being in the input group.
3. Switch to the logind SetBrightness API to control the keyboard LEDs
without requiring elevated permissions. brightnessctl as packaged under
Alpine currently depends on the user being in the input group to control
LEDs.
4. Improve the keyboard backlighting so it is more even, by setting higher values
of brightness for the innermost keyboard backlight LEDs.
5. Simplify the touchscreen calibration rules and merge with the rules for
gpio_keys and power button.
Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8748>
systemd supports using gcc or clang for bpf compilation, using clang
seems easier since the gcc option requires bpf-gcc and a few other tools
that don't seem to be packaged in Alpine.
This isn't working on ARM (see #4411 ), but we can enable it now for x86
and in preparation for a kernel fix on ARM later.
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8779>
The input group should not be blanket allowed for UIs that do not need it as
it bypasses the security benefits of Wayland. This change explicitly adds
the input group to only the UIs that absolutely require it, which is only
SXMO due to their udev rules and lisgd.
Signed-off-by: Aster Boese <asterboese@mailbox.org>
[ci:skip-vercheck]
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8767>
Commit a4e9924792 ("linux-htc-flounder: Modernize package") dropped the
kernel.release install step. Since then a fresh build fails at install:
(rootfs_htc-flounder) % mkinitfs
ERROR: only one kernel release/flavor is supported, found: []
postmarketos-mkinitfs needs /usr/share/kernel/$_flavor/kernel.release
to detect the flavor. Restore the install line (same as other kernel
packages).
Tested: pmbootstrap 3.10.1, edge; fresh install for htc-flounder passes
mkinitfs again and the image boots on hardware.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8796>
Force partition resizing as we are installing to sdcard.
Add an x11 config snippet to have cloned displays. This
will help non-specialized UIs to be usable by having the
same picture for both eyes. Seeing totally different things
on both eyes is a nightmare.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8774>
Sway subpackage existed to provide a shim between 7-r0 and 8-r0, where
sway UI configuration was refactored to be under `$pkgname-sway-hrdl`
subpackage instead of `$pkgname-sway`. This refactor was for two reasons:
1) clean-up package so that just the necessary files were included for
different UIs
2) Since sway subpackage was pulled by sxmo-de-sway, it made sense
only sway-related files be packaged by that subpackage.
Since 96853032, sway subpackage depends directly on `$pkgname-sway-hrdl`
subpackage to automatically pull sway-UI opinionated configuration by
default. This was a mistake, as it broke `sxmo-de-sway` that conflicts
with `iio-sensor-proxy` due to depending on conflicting polkit packages.
This commit drops sway subpackage, as the shim is not necessary anyway,
and adds `install_if` to `$pkgname-sway-hrdl` to automatically install
package when installing `postmarketos-ui-sway`. This means
`$pkgname-sway-hrdl` is never pulled when installing
`postmarketos-ui-sxmo-de-sway`, thus never pulling `iio-sensor-proxy`.
Fixes#4612
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8784>
u-boot-pinebookpro-2020.07 has a bunch of patches:
- 0001-enable-rockchip-rng.patch
- Upstream as dc38a58360bfc3b21621dc9d5e626febd1aa93ec, in v2020.10
- 0002-enable-usb-keyboard.patch
- Partially upstream as 3a57712496ab4383c528184ad1021908d6620162, in v2020.10
- 0003-display-support.patch bundles has multiple patches:
1. Upstream as 7fe2ebf3a326026b9ab80ed94da3cd217c84724d, in v2021.07
2. Upstream as 04d67ceb1c62012822430135be31e18c9c176d85, in v2021.07
3. **not upstream**
4. **not upstream**
5. Upstream in decbc18ed2a9788fcaad3ca349def7bad36741f4, in v2021.07
6. Upstream as a0c248ef0844da239096ecb4a83f9fa2b0535117, in v2021.07
7. Upstream in b197c934b11f611dcc1a083d90e68019d1e010cf, in v2021.01
8. Upstream as 4db3926874a6a17cca1f97a4fd92e58e9182a272, in v2021.07
9. No longer required (screen works fine after warm reboot).
10. Upstream in 216928c772798609ba2cb01a42b6f89832bb0587, in v2023.01
11. Upstream in fce1e9bba263fb5e3e589fdc5c2321f733e3de81, in v2022.07
- 0004-rk3399-light-pinebook-power-and-standby-leds.patch
- LED support is already upstream. It's not as early as this patch,
but its preferable to align with mainline.
- 0005-support-SPI-flash-boot.patch
- Superceded by f9d67436ce5814ea4e394317ddeaf1dbecb1c36b, in v2020.10
- 0006-implement-boot-menu.patch has four patches
1. Disable CONFIG_SPLASH_SOURCE instead of patching the source.
2. No compressed bmp logo in use. Unnecessary and labelled as a hack.
3. Irrelevant as we don't enable CONFIG_CMD_BOOTMENU for this device.
4. Kept patch "vidconsole-uclass: Implement ANSI_CURSOR_COLUMN".
- 0007-rockchip-boot-order.patch
- Upstream as b212ad24a604b00b240add35516b7381965deb31, in v2021.10
- 0008-rockchip-boot-order-add-usb.patch
- **not upstream**
- 0009-rk3399-support-compressed-kernel.patch
- Upstream in 6c041b35bf8966ef3d48fc439c1c07131431d2f5, in v2020.10
Drop a few cosmetic and UX improvements were dropped. These are not
strictly required for device support. For example, only the Esc or
Ctrl+C key would interrupt boot, rather than u-boot's "press any key".
Carrying these improvements puts a burden on maintenance and drifts us
further from upstream.
Rebasing all the way up to v2024.01 was mostly strightfoward, but
v2024.07 had some major conflicts. The conflicting patch was already a
hack, so the result is a hack too.
Also drop "Define a very-opinionated boot sequence". This enables the
truetype console (which no longer builds on ARM64) and relies of
features which have been completely re-written upstream.
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8586>
I think it's pretty common to want to manage an eSIM on most modern
phones now, so let's install an eSIM management app by default.
For phones without eSIM support:
- I don't think having this by default is an issue, and users can
uninstall it (it's in pmb_recommends)
- There are eSIM adapters that fit in SIM slots, so this app is relevant
for them
Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
[ci:skip-vercheck] - pmb_recommends
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8749>
apkbuild-lint only checks the file from the first parameter:
$ apkbuild-lint main/postmarketos-ui-phosh/APKBUILD
IC[AL65]:main/postmarketos-ui-phosh/APKBUILD:66:2:non-local 'install' variable in function 'openrc'. Add install scripts to global install variable instead.
MC[AL49]:main/postmarketos-ui-phosh/APKBUILD:46:1:invalid option 'pmb:drm'
MC[AL49]:main/postmarketos-ui-phosh/APKBUILD:46:1:invalid option 'pmb:systemd'
$ apkbuild-lint main/hello-world/APKBUILD main/postmarketos-ui-phosh/APKBUILD
(empty output!)
Loop over the APKBUILDs we want to lint so all of them get checked.
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8735>
I was wondering why apkbuild-lint found a bug locally but not in CI:
IC[AL65]:main/postmarketos-ui-phosh/APKBUILD:66:2:non-local 'install' variable in function 'openrc'. Add install scripts to global install variable instead.
The reason is that the we use alpine:latest here. Let's change it to
alpine:edge so we have the most recent abuild-go version that finds the
most APKBUILD linting bugs.
Signed-off-by: Oliver Smith <ollieparanoid@postmarketos.org>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8735>
bluebunny's j7xelte has sadly bricked, and so they would prefer to step
down as co-maintainer. I will replace them and so my best to carry the
torch and fill their shoes!
[ci:skip-build] [ci:skip-vercheck] just updating maintainership
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8731>
For seamless systemd support:
1. Fix sway locking script. systemd adds more paths under /run/user, which
interfere with `find`. Limiting the search depth works around the issue
2. Only force load `nokia-modem` driver under openrc. With systemd, force-
loading the driver appears to confuse systemd-udevd during boot, causing
long boot times and even total failure. On the running system, the driver
also causes systemd-udevd to become unstable. Until the issue is resolved
(probably in the driver), there will not be any modem support when using
systemd
3. Remove the isp1704 driver (for the PHY) from the initramfs. Under systemd,
it might load too early and fail, leading to slow charging in the running
system. It is more reliable when loaded later on. Charging still works in
the initramfs since the actual charger driver (bq2415x) is available
Signed-off-By: Sicelo A. Mhlongo <absicsz@gmail.com>
Part-of: <https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/8612>
# Archived: Downstream port, only for testing. Use mainline port!
# Reference: <https://postmarketos.org/devicepkg>
maintainer=""
pkgname=device-sony-tulip-downstream
pkgdesc="Sony Xperia M4 Aqua"
pkgver=4
Loaded 100 of 972 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.