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
	 Marek Marczykowski-Górecki
						Marek Marczykowski-Górecki