Merge remote-tracking branch 'origin/pr/236'
* origin/pr/236: qvm-template: Add qubes.Template{Search,Download} files to the package. qubes.Template*: Add --refresh option and allow DNF cache to be used. qubes.Template*: Invoke curl with --silent. qubes.Template*: Change separator from : to | and include additional metadata. Fix shell quoting. Remove repofrompath. New qrexec calls for interacting with template repos.
This commit is contained in:
commit
e9466dd04f
3
debian/qubes-core-agent.install
vendored
3
debian/qubes-core-agent.install
vendored
@ -37,6 +37,8 @@ etc/qubes-rpc/qubes.VMExec
|
|||||||
etc/qubes-rpc/qubes.VMExecGUI
|
etc/qubes-rpc/qubes.VMExecGUI
|
||||||
etc/qubes-rpc/qubes.WaitForSession
|
etc/qubes-rpc/qubes.WaitForSession
|
||||||
etc/qubes-rpc/qubes.GetDate
|
etc/qubes-rpc/qubes.GetDate
|
||||||
|
etc/qubes-rpc/qubes.TemplateSearch
|
||||||
|
etc/qubes-rpc/qubes.TemplateDownload
|
||||||
etc/qubes-suspend-module-blacklist
|
etc/qubes-suspend-module-blacklist
|
||||||
etc/qubes/autostart/*
|
etc/qubes/autostart/*
|
||||||
etc/qubes/applications/*
|
etc/qubes/applications/*
|
||||||
@ -150,6 +152,7 @@ usr/lib/qubes/upgrades-status-notify
|
|||||||
usr/lib/qubes/vm-file-editor
|
usr/lib/qubes/vm-file-editor
|
||||||
usr/lib/qubes/xdg-icon
|
usr/lib/qubes/xdg-icon
|
||||||
usr/lib/qubes/tinyproxy-wrapper
|
usr/lib/qubes/tinyproxy-wrapper
|
||||||
|
usr/lib/qubes/qvm-template-repo-query
|
||||||
usr/lib/systemd/user/pulseaudio.service.d/30_qubes.conf
|
usr/lib/systemd/user/pulseaudio.service.d/30_qubes.conf
|
||||||
usr/lib/systemd/user/pulseaudio.socket.d/30_qubes.conf
|
usr/lib/systemd/user/pulseaudio.socket.d/30_qubes.conf
|
||||||
usr/share/glib-2.0/schemas/*
|
usr/share/glib-2.0/schemas/*
|
||||||
|
@ -44,7 +44,7 @@ install:
|
|||||||
install -t $(DESTDIR)$(QUBESLIBDIR) \
|
install -t $(DESTDIR)$(QUBESLIBDIR) \
|
||||||
prepare-suspend resize-rootfs \
|
prepare-suspend resize-rootfs \
|
||||||
qfile-agent qopen-in-vm qrun-in-vm qubes-sync-clock \
|
qfile-agent qopen-in-vm qrun-in-vm qubes-sync-clock \
|
||||||
tar2qfile vm-file-editor xdg-icon
|
tar2qfile vm-file-editor xdg-icon qvm-template-repo-query
|
||||||
# Install qfile-unpacker as SUID, because it will fail to receive
|
# Install qfile-unpacker as SUID, because it will fail to receive
|
||||||
# files from other vm.
|
# files from other vm.
|
||||||
install -t $(DESTDIR)$(QUBESLIBDIR) -m 4755 qfile-unpacker
|
install -t $(DESTDIR)$(QUBESLIBDIR) -m 4755 qfile-unpacker
|
||||||
@ -71,7 +71,9 @@ install:
|
|||||||
qubes.PostInstall \
|
qubes.PostInstall \
|
||||||
qubes.GetDate \
|
qubes.GetDate \
|
||||||
qubes.ShowInTerminal \
|
qubes.ShowInTerminal \
|
||||||
qubes.ConnectTCP
|
qubes.ConnectTCP \
|
||||||
|
qubes.TemplateSearch \
|
||||||
|
qubes.TemplateDownload
|
||||||
ln -s qubes.VMExec $(DESTDIR)$(QUBESRPCCMDDIR)/qubes.VMExecGUI
|
ln -s qubes.VMExec $(DESTDIR)$(QUBESRPCCMDDIR)/qubes.VMExecGUI
|
||||||
for config in *.config; do \
|
for config in *.config; do \
|
||||||
install -D -m 0644 "$$config" "$(DESTDIR)$(QUBESRPCCONFDIR)/$${config%.config}"; \
|
install -D -m 0644 "$$config" "$(DESTDIR)$(QUBESRPCCONFDIR)/$${config%.config}"; \
|
||||||
|
3
qubes-rpc/qubes.TemplateDownload
Executable file
3
qubes-rpc/qubes.TemplateDownload
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
exec /usr/lib/qubes/qvm-template-repo-query download
|
3
qubes-rpc/qubes.TemplateSearch
Executable file
3
qubes-rpc/qubes.TemplateSearch
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
exec /usr/lib/qubes/qvm-template-repo-query query
|
49
qubes-rpc/qvm-template-repo-query
Executable file
49
qubes-rpc/qvm-template-repo-query
Executable file
@ -0,0 +1,49 @@
|
|||||||
|
#!/usr/bin/bash
|
||||||
|
|
||||||
|
OPTS=()
|
||||||
|
SPEC=
|
||||||
|
while IFS= read -r line; do
|
||||||
|
if [ "$line" = "---" ]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
case "$line" in
|
||||||
|
--enablerepo=*|\
|
||||||
|
--disablerepo=*|\
|
||||||
|
--repoid=*|\
|
||||||
|
--releasever=*|\
|
||||||
|
--refresh)
|
||||||
|
OPTS+=("$line")
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
SPEC="$line"
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
repodir=$(mktemp -d)
|
||||||
|
cat > "$repodir/template.repo"
|
||||||
|
|
||||||
|
OPTS+=("--setopt=reposdir=${repodir}")
|
||||||
|
OPTS+=("--quiet")
|
||||||
|
|
||||||
|
# This creates the hashfile if it doesn't exist, and keep the ctime and mtime
|
||||||
|
# unchanged otherwise.
|
||||||
|
# We then copy the {c,m}time to the repo config.
|
||||||
|
# This allows DNF caching to work properly.
|
||||||
|
hashfile="/tmp/qvm-template-$(b2sum "$repodir/template.repo" | cut -f1 -d' ')"
|
||||||
|
touch -a "$hashfile"
|
||||||
|
touch -r "$hashfile" "$repodir/template.repo"
|
||||||
|
|
||||||
|
RET=0
|
||||||
|
|
||||||
|
if [ "$1" = "query" ]; then
|
||||||
|
dnf repoquery "${OPTS[@]}" --qf='%{name}|%{epoch}|%{version}|%{release}|%{reponame}|%{downloadsize}|%{buildtime}|%{license}|%{url}|%{summary}|%{description}|' "$SPEC"
|
||||||
|
RET="$?"
|
||||||
|
elif [ "$1" = "download" ]; then
|
||||||
|
url="$(dnf download "${OPTS[@]}" --url "$SPEC" | shuf -n 1)"
|
||||||
|
curl --silent -L "$url" -o -
|
||||||
|
RET="$?"
|
||||||
|
fi
|
||||||
|
|
||||||
|
rm -r "$repodir"
|
||||||
|
exit "$RET"
|
@ -612,6 +612,8 @@ rm -f %{name}-%{version}
|
|||||||
%config(noreplace) /etc/qubes-rpc/qubes.StartApp
|
%config(noreplace) /etc/qubes-rpc/qubes.StartApp
|
||||||
%config(noreplace) /etc/qubes-rpc/qubes.PostInstall
|
%config(noreplace) /etc/qubes-rpc/qubes.PostInstall
|
||||||
%config(noreplace) /etc/qubes-rpc/qubes.GetDate
|
%config(noreplace) /etc/qubes-rpc/qubes.GetDate
|
||||||
|
%config(noreplace) /etc/qubes-rpc/qubes.TemplateSearch
|
||||||
|
%config(noreplace) /etc/qubes-rpc/qubes.TemplateDownload
|
||||||
%config(noreplace) /etc/qubes/rpc-config/qubes.OpenInVM
|
%config(noreplace) /etc/qubes/rpc-config/qubes.OpenInVM
|
||||||
%config(noreplace) /etc/qubes/rpc-config/qubes.OpenURL
|
%config(noreplace) /etc/qubes/rpc-config/qubes.OpenURL
|
||||||
%config(noreplace) /etc/qubes/rpc-config/qubes.SelectFile
|
%config(noreplace) /etc/qubes/rpc-config/qubes.SelectFile
|
||||||
@ -686,6 +688,7 @@ rm -f %{name}-%{version}
|
|||||||
/usr/lib/qubes/qubes-sync-clock
|
/usr/lib/qubes/qubes-sync-clock
|
||||||
/usr/lib/qubes/resize-rootfs
|
/usr/lib/qubes/resize-rootfs
|
||||||
/usr/lib/qubes/tinyproxy-wrapper
|
/usr/lib/qubes/tinyproxy-wrapper
|
||||||
|
/usr/lib/qubes/qvm-template-repo-query
|
||||||
/usr/lib/dracut/dracut.conf.d/30-qubes.conf
|
/usr/lib/dracut/dracut.conf.d/30-qubes.conf
|
||||||
%dir /usr/lib/qubes/init
|
%dir /usr/lib/qubes/init
|
||||||
/usr/lib/qubes/init/bind-dirs.sh
|
/usr/lib/qubes/init/bind-dirs.sh
|
||||||
|
Loading…
Reference in New Issue
Block a user