Source: incus
Version: 0.6-1~bpo12+1
Severity: wishlist

I am using zabby's deb for incus on bookworm following:

  https://github.com/zabbly/incus

Unlike current Debian package, this deb installs files into /opt so this
is not compliant to the current Debian packaging policy.  This is quite
understandable since he is making these binary deb as the upstream
developer.

zabby's deb comes with nice feature of Incus UI.  With it, we can use
browser to manage incus.  All I have to get to the cute web UI is:

 $ incus config set core.https_address ":8443"
 $ firefox-esr https://localhost:8443

zabby's comment on web UI is at:
  https://discuss.linuxcontainers.org/t/web-ui-for-incus/18198

He basically uses generated static LXD-UI pages and rebranded with brute
force patching and seems to build deb binary package.  The github site
doesn't seem to be real Debian source tree.  The above git source only
exposes patches he used etc.

LXD-UI itself is available from Canonical with GPL3
  https://github.com/canonical/lxd-ui
It is a typescript source.

Providing the same page in /var/lib/incus/ui (instead of current
/opt/incus/ui) compliant to Debian policy should help user with updated
path configuration while compiling incus.  I am talking about
followings:

/opt/incus/ui
├── assets
│   ├── AutoExpandingTextArea-b0984bfa.js
│   ├── BaseLayout-da695259.js
│   ├── CancelOperationBtn-dfd3023a.js
│   ├── CertificateAdd-d4a7d2ae.js
│   ├── certificate-eda28c43.js
│   ├── CertificateGenerate-8ae719bf.js
│   ├── ClusterGroupForm-25c7ab41.js
│   ├── clusterGroups-6c3ae0ac.js
│   ├── ClusterList-0300f9c4.js
│   ├── ConfigFieldDescription-04cc287b.js
│   ├── CreateClusterGroup-c6ee6b8a.js
│   ├── CreateInstance-a4f78951.js
│   ├── CreateInstanceFromImageBtn-7f531769.js
│   ├── CreateNetwork-4e810edc.js
│   ├── CreateNetworkForward-22e93cd5.js
│   ├── CreateProfile-2069b1e2.js
│   ├── CreateProject-cecc9d43.js
│   ├── CreateStoragePool-55b5f272.js
│   ├── DiskSizeSelector-5b72fc84.js
│   ├── EditClusterGroup-b708f190.js
│   ├── EditNetworkForward-25840707.js
│   ├── formFields-f410667c.js
│   ├── FormFooterLayout-e758fca7.js
│   ├── FormMenuItem-5a280379.js
│   ├── HelpLink-57385562.js
│   ├── ImageList-a33f30ee.js
│   ├── images-20841d65.js
│   ├── images-8e8d15cf.js
│   ├── img
│   │   ├── favicon-32x32.png
│   │   └── incus-logo.svg
│   ├── index-100d4e14.js
│   ├── index-a1e42770.css
│   ├── index.esm-20fecc07.js
│   ├── instanceDelete-92f38617.js
│   ├── InstanceDetail-1dce84a0.js
│   ├── InstanceDetail-ff373be6.css
│   ├── instanceEdit-3e40081d.js
│   ├── InstanceFormMenu-21a11985.js
│   ├── InstanceList-49b398fa.js
│   ├── instanceValidation-3b4af1be.js
│   ├── instanceValidation-d51d9b53.css
│   ├── loadIsoVolumes-a8ddc0c0.js
│   ├── Login-25eed496.js
│   ├── Meter-cf3a0fcf.js
│   ├── NetworkDetail-a584b0b6.js
│   ├── NetworkDevicesForm-70bef83c.js
│   ├── NetworkForm-4b1a1351.js
│   ├── NetworkForwardForm-a6450899.js
│   ├── network-forwards-23e433d0.js
│   ├── NetworkList-d460bfff.js
│   ├── NetworkMap-8937e175.js
│   ├── networks-d1e4a90f.js
│   ├── NotificationRow-a23c7bb5.js
│   ├── OperationList-ccc34f7d.js
│   ├── operations-3c8573d9.js
│   ├── PageHeader-efb2fb2e.js
│   ├── ProfileDetail-aa5b79ee.js
│   ├── ProfileDetailsForm-cfb6fa83.js
│   ├── ProfileFormMenu-ffc77ee4.js
│   ├── ProfileList-62f69cf9.js
│   ├── ProfileSelector-90b3c743.js
│   ├── ProjectConfiguration-069a34e2.js
│   ├── ProjectForm-54c842f9.js
│   ├── ProtectedRoute-e9d1eae7.js
│   ├── RenameHeader-45fc28ec.js
│   ├── ScrollableTable-d58fc75b.js
│   ├── searchAndFilter-67115edd.js
│   ├── SelectableMainTable-a37bf25d.js
│   ├── SelectedTableNotification-9bffcb9e.js
│   ├── Settings-a73d738f.js
│   ├── settings-c23f9009.js
│   ├── SnapshotForm-be2640fe.js
│   ├── snapshots-78c0e63e.js
│   ├── Storage-dc687613.js
│   ├── StoragePoolDetail-c056ed2d.js
│   ├── StoragePoolSize-b4aaa57a.js
│   ├── StorageUsedBy-d3753f8f.js
│   ├── StorageVolumeCreate-1103f5ec.js
│   ├── storageVolume-dc1599e5.js
│   ├── StorageVolumeDetail-9514de93.js
│   ├── StorageVolumeForm-4ac2614e.js
│   ├── StorageVolumesFilter-1d98b8f2.js
│   ├── SubmitButton-c7658723.js
│   ├── TabLinks-be66fd30.js
│   ├── useClusterMembers-ab2fc364.js
│   ├── useDeleteIcon-9df3ee17.js
│   ├── useSortTableData-cb0187d4.js
│   ├── VolumeAddSnapshotBtn-11eaa84e.js
│   └── WarningList-8aeb56fe.js
└── index.html

3 directories, 90 files

For proper Debian packaging, using LXD-UI source as upstream and use
zabby's patch as post-build patch script may be easier.

-- System Information:
Debian Release: 12.5
  APT prefers stable-updates
  APT policy: (500, 'stable-updates'), (500, 'stable-security'), (500, 'stable')
Architecture: amd64 (x86_64)

Kernel: Linux 6.5.0-0.deb12.4-amd64 (SMP w/12 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_US:en
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Reply via email to