Bug 227034

Summary: x11/pcdm: pcdm blocks other rc.d services
Product: Ports & Packages Reporter: Sascha Holzleiter <sascha>
Component: Individual Port(s)Assignee: Mark Felder <feld>
Status: Closed FIXED    
Severity: Affects Only Me CC: allanjude, bsd, feld, hsw, jt
Priority: --- Flags: bsd: maintainer-feedback? (jt)
Version: Latest   
Hardware: Any   
OS: Any   
Attachments:
Description Flags
Hang workaround
none
pcdm fix none

Description Sascha Holzleiter 2018-03-28 15:21:51 UTC
Created attachment 191906 [details]
Hang workaround

The PCDM-session binary does not daemonize when being started with xinit in $PREFIX/sbin/PCMd which in turn is called from the rc.d script.

This results in the rc.d script hanging when called and all services after this rc file not being started. (In my case: cron, ssh and the automounter family).

The patch works around that but i think that's not the right fix. The fix should be done in the PCDM scripts themselves.


Affected system:

$ freebsd-version -ku                                            
11.1-STABLE
11.1-STABLE
Comment 1 Marlad 2018-06-15 19:21:50 UTC
Thank you!

I can confirm this fixes my problem with rc scripts not being started.
Comment 2 Allan Jude freebsd_committer freebsd_triage 2018-06-28 02:38:18 UTC
Also seeing this on a newly installed 11.2 machine.
Comment 3 Christopher Hall 2019-02-21 08:01:36 UTC
There is also a missing space in /usr/local/sbin/PCDMd

--- /usr/local/sbin/PCDMd	2019-02-18 05:12:20.000000000 +0800
+++ PCDMd	2019-02-21 15:57:09.990645000 +0800
@@ -85,7 +85,7 @@
   if [ -e "/var/tmp/.pcdm-x-started" ] ; then rm /var/tmp/.pcdm-x-started; fi
 #  echo "  [PCDM] Starting PCDM-session"
   xinit /usr/local/bin/PCDM-session -once -- :0 -auth ${PCDMAUTHFILE} $XOPTS vt9 2>/dev/null
-     if [ $? != 0 -a  ! -e "/var/tmp/.pcdm-x-started"] ; then
+     if [ $? != 0 -a  ! -e "/var/tmp/.pcdm-x-started" ] ; then
         # Looks like X failed to start...
         if [ ! -e "/var/tmp/.pcdm-x-failed" ] ; then
           echo " [PCDM] xinit failure 1 - set the failed flag and try again"
Comment 4 Sascha Holzleiter 2019-02-21 10:38:35 UTC
According to Google's mailserver the maintainer email address is dead:

550-5.2.1 The email account that you tried to reach is disabled. Learn more at
550 5.2.1  https://support.google.com/mail/?p=DisabledUser k7si1131359wrv.15 - gsmtp

I've moved on to use sddm and have no further interest in fixing this.

Maybe a maintainer reset and/or port deprecation is in order here.
Comment 5 Christopher Hall 2019-02-26 08:51:25 UTC
I think it is now being developed on Project Trident: https://github.com/project-trident/pcdm
Comment 6 Mark Felder freebsd_committer freebsd_triage 2019-09-07 16:15:26 UTC
this is simple, let's fix it
Comment 7 Mark Felder freebsd_committer freebsd_triage 2019-11-22 22:54:03 UTC
Created attachment 209350 [details]
pcdm fix

This patch should fix it. PCDM doesn't daemonize/fork, so we need to handle this by using daemon(8). That's what's blocking the rest of the services from starting.
Comment 8 commit-hook freebsd_committer freebsd_triage 2019-11-23 15:43:03 UTC
A commit references this bug:

Author: feld
Date: Sat Nov 23 15:42:25 UTC 2019
New revision: 518248
URL: https://svnweb.freebsd.org/changeset/ports/518248

Log:
  x11/pcdm: Fix rc script for FreeBSD

  PCDM doesn't daemonize/fork, so we need to handle this by using
  daemon(8). It seems this port has only been used/tested on TrueOS with
  OpenRC, so it has been broken in FreeBSD ports for the last two years.

  PR:		227034
  Reported by:	VulcanRider
  Approved by:	just fix it
  MFH:		2019Q4
  Sponsored by:	vBSDcon 2019

Changes:
  head/x11/pcdm/Makefile
  head/x11/pcdm/files/
  head/x11/pcdm/files/patch-rc.d_pcdm
Comment 9 commit-hook freebsd_committer freebsd_triage 2019-11-23 15:46:05 UTC
A commit references this bug:

Author: feld
Date: Sat Nov 23 15:45:23 UTC 2019
New revision: 518249
URL: https://svnweb.freebsd.org/changeset/ports/518249

Log:
  MFH: r518248

  x11/pcdm: Fix rc script for FreeBSD

  PCDM doesn't daemonize/fork, so we need to handle this by using
  daemon(8). It seems this port has only been used/tested on TrueOS with
  OpenRC, so it has been broken in FreeBSD ports for the last two years.

  PR:		227034
  Reported by:	VulcanRider
  Approved by:	just fix it
  Sponsored by:	vBSDcon 2019

  Approved by:	ports-secteam (blanket, runtime fix)

Changes:
_U  branches/2019Q4/
  branches/2019Q4/x11/pcdm/Makefile
  branches/2019Q4/x11/pcdm/files/