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.WaitForSession
|
||||
etc/qubes-rpc/qubes.GetDate
|
||||
etc/qubes-rpc/qubes.TemplateSearch
|
||||
etc/qubes-rpc/qubes.TemplateDownload
|
||||
etc/qubes-suspend-module-blacklist
|
||||
etc/qubes/autostart/*
|
||||
etc/qubes/applications/*
|
||||
@ -150,6 +152,7 @@ usr/lib/qubes/upgrades-status-notify
|
||||
usr/lib/qubes/vm-file-editor
|
||||
usr/lib/qubes/xdg-icon
|
||||
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.socket.d/30_qubes.conf
|
||||
usr/share/glib-2.0/schemas/*
|
||||
|
@ -44,7 +44,7 @@ install:
|
||||
install -t $(DESTDIR)$(QUBESLIBDIR) \
|
||||
prepare-suspend resize-rootfs \
|
||||
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
|
||||
# files from other vm.
|
||||
install -t $(DESTDIR)$(QUBESLIBDIR) -m 4755 qfile-unpacker
|
||||
@ -71,7 +71,9 @@ install:
|
||||
qubes.PostInstall \
|
||||
qubes.GetDate \
|
||||
qubes.ShowInTerminal \
|
||||
qubes.ConnectTCP
|
||||
qubes.ConnectTCP \
|
||||
qubes.TemplateSearch \
|
||||
qubes.TemplateDownload
|
||||
ln -s qubes.VMExec $(DESTDIR)$(QUBESRPCCMDDIR)/qubes.VMExecGUI
|
||||
for config in *.config; do \
|
||||
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.PostInstall
|
||||
%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.OpenURL
|
||||
%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/resize-rootfs
|
||||
/usr/lib/qubes/tinyproxy-wrapper
|
||||
/usr/lib/qubes/qvm-template-repo-query
|
||||
/usr/lib/dracut/dracut.conf.d/30-qubes.conf
|
||||
%dir /usr/lib/qubes/init
|
||||
/usr/lib/qubes/init/bind-dirs.sh
|
||||
|
Loading…
Reference in New Issue
Block a user