Skip to content

Commit 3cfa365

Browse files
committed
Version 1.1.57
1 parent 27b084b commit 3cfa365

File tree

1 file changed

+138
-94
lines changed

1 file changed

+138
-94
lines changed

README.md

Lines changed: 138 additions & 94 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,30 @@ upgrading apps.
1010

1111
![Screenshot](https://github.com/k9spud/appswipe/assets/39664841/754e807d-4e57-457e-8d54-554d38e8a070)
1212

13+
What's New in v1.1.57?
14+
======================
15+
Dependencies are now displayed for packages that haven't been installed
16+
yet, thanks to the information in repo metadata caches. Even better,
17+
App Swipe now does lookups on each dependency for an uninstalled package to
18+
determine what other packages you need to install. These unsatisfied
19+
dependencies show up highlighted in red.
20+
21+
Previously, the code for updating the internal SQLite database after
22+
installing/upgrading a package did not update the total installed disk
23+
space used by the package. Now we update the database with the size of the
24+
installed package.
25+
26+
Auto-keyword unmasking has been refactored. We no longer sudo a shell script
27+
to append to /etc/portage/package.accept_keyword/appswipe.tmp. Instead, we
28+
require the user to set up such a file and give it write permissions for
29+
so that sudo/doas is not required. App Swipe now does some checking to try
30+
to avoid adding accept_keyword entries for packages that have already been
31+
keyword unmasked so that this file doesn't get bloated as quickly.
32+
33+
Right click "List files owned" has been removed. Instead, a link on the app
34+
view page for the installed size can be used. This reduces the number
35+
of clicks needed to get to the installed files list.
36+
1337
Help Get the Word Out
1438
=====================
1539

@@ -61,6 +85,107 @@ emerge app-portage/appswipe
6185
If all went well, you can now run the `appswipe` program from your normal
6286
user-level account.
6387

88+
Root Privileges
89+
================
90+
Do not run App Swipe as 'root.' For searching and browsing your local
91+
repository files, App Swipe never uses any elevated privileges. Only
92+
when you attempt to make system wide changes (install/upgrade/uninstall/etc)
93+
are elevated permissions necessary.
94+
95+
In order to execute `emerge` and other tools with elevated permissions,
96+
App Swipe will either use the `doas` or `sudo` command (whichever is
97+
installed on your system). If you've already got one of these configured to
98+
let you run commands as root, you probably don't need to do any additional
99+
configuration. However, if you want a more fine grained configuration, the
100+
following may be useful:
101+
102+
Example `doas` configuration
103+
----------------------------
104+
When using [doas](https://wiki.gentoo.org/wiki/Doas), you could add the
105+
following to `/etc/doas.conf` (substitute the username you run App Swipe
106+
under for USER):
107+
108+
```console
109+
permit USER cmd /usr/bin/emerge
110+
permit USER cmd /usr/bin/ebuild
111+
permit USER cmd /usr/sbin/dispatch-conf
112+
```
113+
114+
Example `sudo` configuration
115+
----------------------------
116+
When using [sudo](https://wiki.gentoo.org/wiki/Sudo), you could add the
117+
following using the `visudo` command (substitute the username you
118+
run App Swipe under for USER):
119+
120+
```console
121+
USER localhost = /usr/bin/emerge
122+
USER localhost = /usr/bin/ebuild
123+
USER localhost = /usr/sbin/dispatch-conf ""
124+
```
125+
126+
Using App Swipe
127+
===============
128+
129+
The first thing App Swipe does is scrape up all the scattered data about
130+
installed packages from `/var/db/pkg` and packages available in repos
131+
at `/var/db/repos`. This data is inserted into a
132+
[SQLite](https://www.sqlite.org/) database that is stored at
133+
`$HOME/.AppSwipe/AppSwipe.db`.
134+
135+
From that point on, you can do searches and browse your portage repos
136+
at blazing speed, thanks to the underlying SQLite database. As you install,
137+
upgrade, etc, App Swipe attempts to keep the SQLite database up-to-date,
138+
but this is currently not always perfect. If an emerge operation pulls in
139+
additional dependencies, for example, App Swipe currently has no way of
140+
knowing about these extra changes, so you may have to manually trigger
141+
a `Reload Database` operation from time to time, to bring App Swipe's
142+
internal database back up to matching what's really in your system at
143+
the moment.
144+
145+
Using the `View Updates` page
146+
-----------------------------
147+
148+
The `View Updates` page features a list of all potentionally upgradable
149+
packages that are currently installed on your system. The `Upgrade` link
150+
on this page lets you emerge all the upgradable packages that App Swipe
151+
shows here. This is similar to `Update World`, except App Swipe doesn't burn
152+
a bunch of CPU cycles determining which package dependencies descend from
153+
your @world list like emerge does. Instead, it lists any package
154+
already installed on your system that could be upgraded to a newer version.
155+
156+
The `View Updates` URL input box supports filters. Let's say you only want
157+
the subset of upgradable packages that contain the word `qt` for example.
158+
The URL `update:qt` will let you see only those packages, and the `Fetch`
159+
or `Upgrade` links on this filtered page will be limited to only fetching
160+
or upgrading the `qt` subset as well.
161+
162+
Negative filters are supported. Let's say you want to upgrade Qt packages,
163+
but you want to avoid `qtwebengine` for now (because that one is *huge* and
164+
takes *forever*). You could simply use the URL
165+
`update:qt -qtwebengine`
166+
167+
![Filtering updates](https://github.com/k9spud/appswipe/assets/39664841/71df9665-d329-4db0-b6e1-d3b8238a0662)
168+
169+
Automatic Keyword Unmasking
170+
---------------------------
171+
172+
App Swipe can automatically keyword unmask packages when you attempt to
173+
fetch or install a "testing" or "unsupported" (non-keyworded) release.
174+
175+
To enable this feature, create an accept_keywords file with
176+
writable permissions for your username like this:
177+
178+
```console
179+
cd /etc/portage/package.accept_keywords
180+
touch appswipe.tmp
181+
chown USER:USER appswipe.tmp
182+
chmod 0644 appswipe.tmp
183+
```
184+
This feature may have security implications; it's use is optional.
185+
If you don't provide user write permission to the file
186+
`/etc/portage/package.accept_keywords/appswipe.tmp`, App Swipe will
187+
silently skip doing automatic keyword unmasking.
188+
64189
Keyboard Shortcuts
65190
==================
66191

@@ -111,103 +236,22 @@ way to close a tab.
111236

112237
`ALT-F` Opens the app menu.
113238

114-
What's New in v1.1.52?
115-
======================
116-
117-
Split off database reload code into a separate command line program,
118-
`appswipebackend`. Going forward, more and more code should be moved
119-
into the backend so that only the bare essential code needed to keep the
120-
GUI displayed is kept in resident memory.
121-
122-
Database loading code now supports capturing data from the repo's
123-
`metadata/md5-cache/` instead of trying to parse the data out of .ebuild
124-
files. This solves a lot of problems with slot numbers that were previously
125-
showing bad data because the .ebuild files often do a lot of scripting
126-
with regards to declaring a slot number. App Swipe will still continue to
127-
fall back to parsing .ebuild files if the repo does not have metadata cache.
128-
129-
Now supports displaying bzip2 compressed files.
130-
Now supports displaying text files with markdown formatting.
131-
132-
Now does a better job of sorting packages by version number. Previously,
133-
version numbers containing alpha, beta, pre, rc (basically, any sort of
134-
"pre-release") could end up sorting out as being newer than the final
135-
release.
136-
137-
Fixed a bug in applying masks to the right versions when using the `<=`
138-
operator.
139-
140-
Now supports packages with excessive tuples in the version string
141-
(such as `net-ftp/ftp-0.17.34.0.2.5.1`). The SQL database schema now supports
142-
up to 10 tuples maximum.
143-
144-
Available USE flags (IUSE) now shows the latest available set from
145-
the latest release in the repo rather than showing what the available USE
146-
flags were for that package at install. This seems more useful, as it may let
147-
you know more about what's really available out there.
148-
149-
Found some packages where the same IUSE flag is listed multiple times - we
150-
now remove duplicates so App Swipe's display is less cluttered.
151-
152-
We now filter out USE flags that aren't in the package's available IUSE flags
153-
list. This cleans up the display of extraneous USE flags that seem more like
154-
internal portage flags than actual options for the user.
155-
156-
Hard reload (CTRL-R) when viewing an app page no longer blindly reloads all
157-
mask files like it used to. Instead, we only execute SQL updates
158-
for the masks that contain this app's atom string. This makes hard
159-
reload work a lot faster while most likely still providing the same results.
160-
161-
Pressing Return while a link is highlighted in the browser view now triggers
162-
navigating to the linked page. This keyboard shortcut comes in handy after
163-
doing a CTRL-F search for a particular package.
164-
165-
What's New in v1.1.48?
166-
======================
167-
168-
Added support for laptops that have no right mouse button. Now you can left
169-
click and hold to trigger a "right click."
170-
171-
`View Updates` now filters out live ebuilds with version numbers
172-
9999, 99999, 999999, 9999999, 99999999, or 99999999 (just to be sure).
173-
174-
The `View Updates` screen now features an `Upgrade` button to let you emerge
175-
all the upgradable packages that App Swipe sees. This is similar to
176-
`Update World`, except App Swipe doesn't burn a bunch of CPU cycles
177-
determining which package dependencies descend from your @world list like
178-
emerge does. Instead, we just list any package already installed on your
179-
system that could be upgraded to a newer version.
180-
181-
The `View Updates` URL input box now supports adding filters.
182-
Let's say you only want the subset of upgradable packages
183-
that contain the word `qt` for example. The URL `update:qt` will let you see
184-
only those packages, and the `Fetch` or `Upgrade` buttons on this page will
185-
limit itself to only fetching or upgrading the `qt` subset as well.
186-
187-
You can also apply negative filters. Let's say you want to upgrade Qt
188-
packages, but you want to avoid `qtwebengine` for now (because that one is
189-
*huge* and takes *forever*). You could simply use the URL
190-
`update:qt -qtwebengine`
191-
192-
![Filtering updates](https://github.com/k9spud/appswipe/assets/39664841/71df9665-d329-4db0-b6e1-d3b8238a0662)
193-
194-
`Update System` and `Update World` now add the `--changed-use` emerge flag.
195-
This flag makes emerge pick up on packages that need re-building due to
196-
any new USE flag changes made to your portage configuration files.
197-
198-
We now trigger an automatic App Swipe database reload at the end of successful
199-
`emerge --update` operations.
239+
Common Problems
240+
===============
200241

201-
Fixed a bug where the app could crash when saving state if there exists
202-
a newly opened window that has no tabs.
242+
When I right click and "Reinstall from source," it just reinstalls the
243+
previously built binary?
244+
----------------------------------------------------------------------
203245

204-
Fixed a bug that made it impossible to view an app info page where the app name
205-
has what might be a version number (but actually isn't). For example
206-
`media-fonts/font-bh-100dpi` would previously show a blank page when
207-
trying to bring it up.
246+
This can be caused by having "FEATURES=${FEATURES} getbinpkg" in your
247+
`/etc/portage/make.conf` file. App Swipe can't override FEATURES
248+
from the command line.
208249

209-
Added code for removing /tmp/AppSwipe.XXX temporary file after it has been
210-
used.
250+
The suggested workaround is to remove `getbinpkg` from the `FEATURES`
251+
variable, and instead add `--getbinpkg=y` to the `EMERGE_DEFAULT_OPTS`
252+
variable. This has the same effect, except now App Swipe can override
253+
the use of binary packages when doing a "Reinstall from source"
254+
operation.
211255

212256
License
213257
=======

0 commit comments

Comments
 (0)