Marek Marczykowski-Górecki 10 лет назад
Родитель
Сommit
e9eb43e026
4 измененных файлов с 27 добавлено и 3 удалено
  1. 1 0
      Makefile
  2. 17 3
      rpm_spec/core-vm.spec
  3. 4 0
      vm-systemd/ModemManager.service
  4. 5 0
      vm-systemd/misc-post.sh

+ 1 - 0
Makefile

@@ -47,6 +47,7 @@ install-vm:
 	install -m 0755 vm-systemd/*.sh $(DESTDIR)/usr/lib/qubes/init/
 	install -m 0644 vm-systemd/qubes-*.service $(DESTDIR)/lib/systemd/system/
 	install -m 0644 vm-systemd/qubes-*.timer $(DESTDIR)/lib/systemd/system/
+	install -m 0644 vm-systemd/ModemManager.service $(DESTDIR)/usr/lib/qubes/init/
 	install -m 0644 vm-systemd/NetworkManager.service $(DESTDIR)/usr/lib/qubes/init/
 	install -m 0644 vm-systemd/NetworkManager-wait-online.service $(DESTDIR)/usr/lib/qubes/init/
 	install -m 0644 vm-systemd/cups.* $(DESTDIR)/usr/lib/qubes/init/

+ 17 - 3
rpm_spec/core-vm.spec

@@ -48,6 +48,10 @@ Requires:   net-tools
 Requires:   nautilus-actions
 Requires:   qubes-core-vm-kernel-placeholder
 Requires:   qubes-utils
+%if %{fedora} >= 20
+# gpk-update-viewer required by qubes-manager
+Requires:   gnome-packagekit-updater
+%endif
 Provides:   qubes-core-vm
 Obsoletes:  qubes-core-commonvm
 Obsoletes:  qubes-core-appvm
@@ -96,7 +100,9 @@ adduser --create-home user
 make install-vm DESTDIR=$RPM_BUILD_ROOT
 
 %triggerin -- initscripts
-cp /usr/lib/qubes/serial.conf /etc/init/serial.conf
+if [ -e /etc/init/serial.conf ]; then
+	cp /usr/lib/qubes/serial.conf /etc/init/serial.conf
+fi
 
 %post
 
@@ -143,7 +149,11 @@ for F in gpk-update-icon nm-applet ; do
 done
 
 echo 'OnlyShowIn=GNOME;UpdateableVM;' >> /etc/xdg/autostart/gpk-update-icon.desktop || :
+if %{fedora} >= 20
+echo 'OnlyShowIn=GNOME;QUBES;' >> /etc/xdg/autostart/nm-applet.desktop || :
+%else
 echo 'OnlyShowIn=GNOME;NetVM;' >> /etc/xdg/autostart/nm-applet.desktop || :
+%endif
 
 usermod -p '' root
 usermod -L user
@@ -448,6 +458,7 @@ The Qubes core startup configuration for SystemD init.
 /usr/lib/qubes/init/misc-post.sh
 /usr/lib/qubes/init/misc-post-stop.sh
 /usr/lib/qubes/init/qubes-sysinit.sh
+/usr/lib/qubes/init/ModemManager.service
 /usr/lib/qubes/init/NetworkManager.service
 /usr/lib/qubes/init/NetworkManager-wait-online.service
 /usr/lib/qubes/init/cups.service
@@ -455,6 +466,7 @@ The Qubes core startup configuration for SystemD init.
 /usr/lib/qubes/init/cups.path
 /usr/lib/qubes/init/ntpd.service
 /usr/lib/qubes/init/chronyd.service
+%ghost %attr(0644,root,root) /etc/systemd/system/ModemManager.service
 %ghost %attr(0644,root,root) /etc/systemd/system/NetworkManager.service
 %ghost %attr(0644,root,root) /etc/systemd/system/NetworkManager-wait-online.service
 %ghost %attr(0644,root,root) /etc/systemd/system/cups.service
@@ -473,7 +485,7 @@ UNITDIR=/lib/systemd/system
 OVERRIDEDIR=/usr/lib/qubes/init
 
 # Install overriden services only when original exists
-for srv in cups NetworkManager NetworkManager-wait-online ntpd chronyd; do
+for srv in cups ModemManager NetworkManager NetworkManager-wait-online ntpd chronyd; do
     if [ -f $UNITDIR/$srv.service ]; then
         cp $OVERRIDEDIR/$srv.service /etc/systemd/system/
     fi
@@ -481,7 +493,7 @@ for srv in cups NetworkManager NetworkManager-wait-online ntpd chronyd; do
         cp $OVERRIDEDIR/$srv.socket /etc/systemd/system/
     fi
     if [ -f $UNITDIR/$srv.path -a -f $OVERRIDEDIR/$srv.path ]; then
-        cp $OVERRIDEDIR/$srv.service /etc/systemd/system/
+        cp $OVERRIDEDIR/$srv.path /etc/systemd/system/
     fi
 done
 
@@ -514,9 +526,11 @@ rm -f /etc/systemd/system/getty.target.wants/getty@tty*.service
 /bin/systemctl enable rsyslog.service 2> /dev/null
 /bin/systemctl enable ntpd.service 2> /dev/null
 # Disable original service to enable overriden one
+/bin/systemctl disable ModemManager.service 2> /dev/null
 /bin/systemctl disable NetworkManager.service 2> /dev/null
 # Disable D-BUS activation of NetworkManager - in AppVm it causes problems (eg PackageKit timeouts)
 /bin/systemctl mask dbus-org.freedesktop.NetworkManager.service 2> /dev/null
+/bin/systemctl enable ModemManager.service 2> /dev/null
 /bin/systemctl enable NetworkManager.service 2> /dev/null
 # Fix for https://bugzilla.redhat.com/show_bug.cgi?id=974811
 /bin/systemctl enable NetworkManager-dispatcher.service 2> /dev/null

+ 4 - 0
vm-systemd/ModemManager.service

@@ -0,0 +1,4 @@
+.include /lib/systemd/system/ModemManager.service
+[Unit]
+ConditionPathExists=|/var/run/qubes-service/network-manager
+ConditionPathExists=|/var/run/qubes-service/modem-manager

+ 5 - 0
vm-systemd/misc-post.sh

@@ -48,6 +48,11 @@ fi
 
 # Start services which haven't own proper systemd unit:
 
+# Hide nm-applet when network-manager is disabled
+nm_enabled=false
+[ -f /var/run/qubes-service/network-manager ] && nm_enabled=true
+su -c "gsettings set org.gnome.nm-applet show-applet $nm_enabled" user 2> /dev/null
+
 # Start AppVM specific services
 if [ ! -f /etc/systemd/system/cups.service ]; then
     if [ -f /var/run/qubes-service/cups ]; then