<feed xmlns='http://www.w3.org/2005/Atom'>
<title>luci/applications/luci-app-package-manager/htdocs, branch master</title>
<subtitle>Lua Configuration Interface (mirror)</subtitle>
<id>https://git.openwrt.org/project/luci/atom?h=master</id>
<link rel='self' href='https://git.openwrt.org/project/luci/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/'/>
<updated>2026-09-06T18:47:04Z</updated>
<entry>
<title>treewide: wrap loose view content in cbi-section</title>
<updated>2026-09-06T18:47:04Z</updated>
<author>
<name>Ivan Kvashonkin</name>
</author>
<published>2026-09-05T16:43:28Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=9aff4652380831e40b075a6f698ca427ee59fd04'/>
<id>urn:sha1:9aff4652380831e40b075a6f698ca427ee59fd04</id>
<content type='text'>
Views that returned headings, tables and control rows with nothing around
them now wrap that content in a section: the system and kernel logs,
Processes, the nftables and iptables views, Startup, the wireless station
list, DSL stats and the package manager. The nftables rule tables also
drop an !important that no theme could override.

Nothing changes in the stock bootstrap theme; themes that draw
.cbi-section as a panel get the structure they need.

Signed-off-by: Ivan Kvashonkin &lt;vizzlef@gmail.com&gt;
</content>
</entry>
<entry>
<title>treewide: fix textarea double scrolling issue</title>
<updated>2026-09-05T15:16:34Z</updated>
<author>
<name>Michael Pratt</name>
</author>
<published>2026-08-22T17:42:26Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=82966a62d0adb6ca0785f296f1d36e72cb9f7a3a'/>
<id>urn:sha1:82966a62d0adb6ca0785f296f1d36e72cb9f7a3a</id>
<content type='text'>
In "textarea" class elements, like the syslog,
depending on the browser, it is difficult to scroll if moused over
or after clicking or highlighting text.

The browser perceives that there is scrolling space/content within
the inner element because when the height of the element is exactly
the same size as text inside, the text padding or other invisible content
exceeds the size of the text box and the scroll bar is kept in the window.

This causes scrolling within the element with a range of just a few pixels,
and the rest of the page remains static and refuses to scroll.

To fix this add 1 to the dynamic size of the "textarea" boxes,
and also the initial values before the dynamic size is calculated.
This "+ 1" already exists in some instances of similar Javascript files.

A previous attempt at fixing this used "overflow-y" styling
but that causes undesirable behavior in some "textarea" use cases.

In some cases "+ 1" is added to both dynamic and final sizes, this can equate
to a total addition of 2 lines, which is still reasonable and proper padding,
and this promotes the habit of padding the textarea elements treewide,
no matter what example is used to modify or create the javascript for a new app.

The aria2 application ternary check for a minimum textarea size
seems to be written in reversed logic. It should likely be a minimum of 20 lines,
and the exact number + 1 otherwise, so fix that while at it.

Tested on Chrome 64-bit Windows 10.

Ref: 755061bc9e7e ("themes: remove overflow-y property...")
Signed-off-by: Michael Pratt &lt;mcpratt@pm.me&gt;
</content>
</entry>
<entry>
<title>luci-app-package-manager: make the per-row action button compact</title>
<updated>2026-09-05T07:13:45Z</updated>
<author>
<name>Josef Schlehofer</name>
</author>
<published>2026-08-18T06:13:24Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=bbec62eafb14b12de30d15c151ea213cd2aa4674'/>
<id>urn:sha1:bbec62eafb14b12de30d15c151ea213cd2aa4674</id>
<content type='text'>
The bootstrap theme reserves 15% of the table width for the action cell,
causing the single action button to stretch unnecessarily.

Let the cell size to its content so the description gets more space
while the action buttons remain aligned.

Signed-off-by: Josef Schlehofer &lt;pepe.schlehofer@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-package-manager: count only one provider for alternative deps</title>
<updated>2026-07-20T19:26:53Z</updated>
<author>
<name>Maxim Skokov</name>
</author>
<published>2026-07-06T20:43:18Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=a53c15d69382ac0a3ee31bfdd82af36ad18b7c95'/>
<id>urn:sha1:a53c15d69382ac0a3ee31bfdd82af36ad18b7c95</id>
<content type='text'>
When a package depends on a virtual name with several providers, the
dependency details listed every provider and added each one to the
download size estimate and the subdependency tree. apk installs only a
single provider, so the estimate was inflated and, once one provider
was already installed, the dependency was still shown as pulling in the
others.

Pick one effective provider per dependency, following the apk solver
selection order: an installed one if present, otherwise the available
one with the highest provider-priority, otherwise the first available
one. Count only that provider towards the size estimate and
subdependencies. provider-priority is already part of the model since
the backend queries with --fields all and the build system emits it
from PRIORITY (include/package-pack.mk). The install command itself is
unchanged; it passes the target package to apk, which resolves
providers on its own.

Fixes: #8411
Signed-off-by: Maxim Skokov &lt;skokov.m020709@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-package-manager: handle versioned provides from apk query</title>
<updated>2026-05-25T08:48:47Z</updated>
<author>
<name>Mario Andrés Pérez</name>
</author>
<published>2026-04-27T19:32:14Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=3a3a3196aa271e233cae5164dd9f8c9d2c8df12f'/>
<id>urn:sha1:3a3a3196aa271e233cae5164dd9f8c9d2c8df12f</id>
<content type='text'>
'apk query --format json...' outputs the complete provides fields
including the version.
    ...
    "provides": [
      "firewall4-any",
      "uci-firewall=2025.03.17~b6e51575-r2"
    ],
    ...
Versus the previous 'apk info --full'
    ...
    Package: firewall4
    Version: 2025.03.17~b6e51575-r2
    Depends: kmod-nft-core, kmod-nft-fib, kmod-nft-nat, kmod-nft-offload, libc, nftables-json, ucode, ucode-mod-fs, ucode-mod-ubus, ucode-mod-uci
    Provides: firewall4-any, uci-firewall
    ...

Strip the '=&lt;version&gt;' suffix before gathering the providers chain.
This was causing some incorrent dependecy issues (ie. uci-firewall not
detected as satisfied) in the luci package-manager app.

Fixes: https://github.com/openwrt/luci/issues/8563
Fixes: https://github.com/openwrt/luci/issues/8581
Fixes: https://github.com/openwrt/openwrt/issues/23004
Fixes: https://github.com/openwrt/openwrt/issues/23136
Fixes: 1624418f64db1bef1ec8e5fafd42bec63cd0adc0 ("package-manager: migrate to apk-tools JSON API")
Signed-off-by: Mario Andrés Pérez &lt;mapb_@outlook.com&gt;
</content>
</entry>
<entry>
<title>package-manager: migrate to apk-tools JSON API</title>
<updated>2026-04-09T19:44:40Z</updated>
<author>
<name>Konstantin Glukhov</name>
</author>
<published>2026-03-25T16:32:21Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=1624418f64db1bef1ec8e5fafd42bec63cd0adc0'/>
<id>urn:sha1:1624418f64db1bef1ec8e5fafd42bec63cd0adc0</id>
<content type='text'>
Replace legacy opkg status parsing with native apk-tools JSON queries.
This modernizes the backend calls and improves dependency resolution.

- Implement 'apk query --format json' for package data retrieval.
- Add robust regex for versioned dependencies (e.g., name&gt;=version).
- Update version comparison to handle APK date-based revisions.
- Fix label-input associations to resolve accessibility warnings.
- Retain deprecated opkg fallback logic for LuCI master.

Signed-off-by: Konstantin Glukhov &lt;KGlukhov@Hotmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-package-manager: js linting fixes / ES6 treatment</title>
<updated>2026-02-16T00:42:57Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2026-02-15T05:52:47Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=6d2eb7fa6320a3dbc3f88098b17c78e2c050192e'/>
<id>urn:sha1:6d2eb7fa6320a3dbc3f88098b17c78e2c050192e</id>
<content type='text'>
Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-package-manager: fix 'autoremove' checkbox uneditable</title>
<updated>2025-06-29T17:37:18Z</updated>
<author>
<name>Liangbin Lian</name>
</author>
<published>2025-06-26T09:09:01Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=8b5dfabdf3b4f929ea5e4bbd9350e930c10e8ad3'/>
<id>urn:sha1:8b5dfabdf3b4f929ea5e4bbd9350e930c10e8ad3</id>
<content type='text'>
In HTML, the following lines of code are equivalent:
```
&lt;input disabled /&gt;
&lt;input disabled="true" /&gt;
&lt;input disabled="false" /&gt;
&lt;input disabled="any" /&gt;
```
If you want to cancel the 'disabled' flag, you must completely remove it from the HTML instead of assigning a value.

Signed-off-by: Liangbin Lian &lt;jjm2473@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-package-manager: Swap ternary outputs</title>
<updated>2024-12-06T00:39:13Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2024-12-06T00:39:13Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=276fef82e0095731f0b59501ca3d62059fd5fede'/>
<id>urn:sha1:276fef82e0095731f0b59501ca3d62059fd5fede</id>
<content type='text'>
follow-up for 9a5a5ec5784848a60e3c10895d762d3a69b3d13e

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
<entry>
<title>luci-app-package-manager: Correct Size display string + i18n sync</title>
<updated>2024-12-03T15:41:55Z</updated>
<author>
<name>Paul Donald</name>
</author>
<published>2024-12-03T15:41:55Z</published>
<link rel='alternate' type='text/html' href='https://git.openwrt.org/project/luci/commit/?id=9a5a5ec5784848a60e3c10895d762d3a69b3d13e'/>
<id>urn:sha1:9a5a5ec5784848a60e3c10895d762d3a69b3d13e</id>
<content type='text'>
Closes #7448

Signed-off-by: Paul Donald &lt;newtwen+github@gmail.com&gt;
</content>
</entry>
</feed>
