See the patch descriptions for more details. All patches will be
submitted upstream (patch 0001 has already been submitted more than half
a year ago but hasn't had any activity yet).
Taken from upstream. Our mesa-git is pretty outdated, we should update
it soon. But we need to unblock the repository first, so this is the
fastest way for now.
"plasma" and some related packages are currently missing in Alpine edge
armv7 due to a cyclic dependency. Let's disable all packages depending
on plasma for armv7 temporarily, to get the pmOS edge armv7 repo up
again.
[ci:skip-build], [ci:skip-vercheck]: only arch line changed
Related: build.postmarketos.org#72
Add patch to fix build for armv7, armhf. That patched version is being
upstreamed to Alpine. Fork it now, so our builds are not blocked.
Related: builds.postmarketos.org#72
Add mimeapps.list, so links clicked in postmarketos-welcome and other
applications properly open in firefox. Without this patch, they just
don't open at all.
Bump the pkgver instead of the pkgrel, so the APKBUILD is in sync again
on both master and v20.05 (right now, the pkgrel on v20.05 is ahead by
one, otherwise the file is the same).
Related: https://help.gnome.org/admin/system-admin-guide/stable/mime-types-application.html.en
Disable the first run screen in GNOME software, which invites the user
to browse and install apps. We do not want people to use GNOME software to
do that when they open it for the first time in postmarketOS after
installing, we want them to do updates. So this dialog is misleading for
our users, and will lead to a bad experience for those who follow what
it suggests.
I think there's more wrong with that dialog (in context of postmarketOS),
more detailed reasoning and screenshot in:
https://gitlab.com/postmarketOS/pmaports/-/merge_requests/1449#note_385456592
Replace firefox with firefox-esr, remove epiphany. With the current
version of epiphany, the postmarketOS wiki doesn't even load every time,
so that's not something we want to ship.
Add policies.json and prefs.js to configure Firefox (yes, you need both
to be able to control all this):
Mobile improvements:
* Enable zooming with fingers
* Mobile user agent (from tor browser for android)
Privacy improvements:
* Disable search suggestions, so URLs do not get sent to search engines
as they are getting typed.
* Disable Firefox studies
* Disable Telemetry
* Set DuckDuckGo as default search engine, not Google
Uncluttering (screen space, remove broken features, less distractions):
* Move all buttons to the overflow menu and remove spacers around the
address bar
* Empty "new tab" page (loads faster, no annoying "top sites" etc.)
* Disable developer tools, so the hamburger menu fits the screen of the
pinephone. These aren't really useful on phones anyway.
* Disable "Firefox Screenshots": the feature did not work with the mobile
resolution in Phosh.
* No default bookmarks from Firefox
* Disable First Run Page
* Disable Post Update Page
* Disable "User Messaging" (What's new, Extension/Feature
Recommendations, Urlbar Interventions)
Add a local html file that serves as lightweight default homepage. It
links to the postmarketOS blog and wiki, explains that this is desktop
firefox with mobile configuration and explains how to change settings
and install addons (with a direct link to ublock origin). Users can
override the homepage, new tab page, search engine, search suggestions
pre-configured by this package directly in the UI.
I chose Firefox ESR, because:
* It fits the screen better: the "new tab" button is bigger, the menu
opening when you click the top-right button actually fits the screen,
with all its submenus. There are zoom controls in the same menu, which
make the preferences pages very usable.
* It's possible to override the default search engine with a policy
file; that's not possible in non-ESR firefox (we'd probably need to
change it in the sources).
Related: https://github.com/mozilla/policy-templates
Co-authored-by: Martijn Braam <martijn@brixit.nl>
In phosh, we have broken Cheese (Camera) and Extensions (from GNOME shell)
icons in the launcher. They get dragged in via dependencies, so the
easiest way to disable them is just overruling the .desktop icon. We can
make Cheese visible again in a post-install script (just check if it
points to nodisplay.desktop and delete the link) once we have it working.
Hide icons for terminal programs (htop, nvim, vim) as well as "Firefox
Safe Mode" too. If somebody really wants to use the FF safe mode, they
can do so via terminal.
Have a simple initial version, maybe make it more sophisticated with
UI-specific hidden icons later (right now, it doesn't make sense to
install this in normal GNOME, because there you would need
org.gnome.Extensions). (There is "NotShowIn=phosh" (untested), but using
this would mean that we need to keep all the information of the original
desktop file for the UIs that will display them; we can't just use the
symlink trick. I'm not sure if we want that at all, but it's
definitively over-engineered for now.)
The packages were rebuilt in Alpine, so update the checksums. Also
point to a deterministic mirror URL instead of CDN, so it won't randomly
fail depending on which (possibly outdated) mirror CDN gives.
Related: pmbootstrap!1963
The p? is not redundant. Without it, the p in mmcblk0p2 for example does
not get cut off, meaning the resulting device is not "mmcblk0" but
"mmcblk0p". My bad, sorry for the breakage.
Fixes: 9f6600ba ("main/postmarketos-mkinitfs: rm pmOS_deleteme")
Fixes: 9d86f6fe ("main/postmarketos-mkinitfs: resize: unallocated space check, even if forced")
Remove the "pmOS_deleteme" partition left behind by the on-device
installer, if it exists. Let the existing resize_root_partition() extend
the root partition over the newly gained space (and rest of the storage
device) right afterwards.
In resize_root_partition(), put the unallocated space check into an
extra function has_unallocated_space(). Run it even if
PMOS_FORCE_PARTITION_RESIZE is used, so we don't attempt to resize the
partition if there is no free space.
While at it, change "sed 's/p?2$//'" to "sed 's/2$//' in an already
modified line, because it means the same thing and is less confusing
(? in regex means: 0 or 1 time).
samsung-skomer basically uses the same BCM4334 WiFi/BT chip as
samsung-golden, and the WiFi/BT firmware is also the same.
There seems to be a slightly different NVRAM file, so we package
that just to do things properly.