On Wed, Nov 01, 2023 at 09:01:48AM +0100, Stefan Hagen wrote:
> Omar Polo wrote (2023-10-30 19:46 CET):
> > On 2023/10/30 14:28:35 +0100, Stefan Hagen <sh+openbsd-po...@codevoid.de> 
> > wrote:
> > > Stefan Hagen wrote (2023-10-30 13:56 CET):
> > > > I was looking for a solution to invoke autorandr when a monitor
> > > > gets attached/detached. Unfortunately this emits no event that our
> > > > hotplugd(8) can catch.
> > > > 
> > > > Today I stumbled over srandrd, and it's solving this issue in a nice and
> > > > clean way.
> > > > 
> > > > $ cat pkg/DESCR
> > > > -----
> > > > srandrd is a tool that executes a command on xrandr output change
> > > > events, i.e. if a monitor is plugged or unplugged. By default srandrd
> > > > forks to background and exits if the xserver exits.
> > > > -----
> > > > 
> > > > You can drop "srandrd some_script.sh" into .xsession and it will run 
> > > > this
> > > > script when X output changes happen.
> > > > 
> > > > Inside the script, you have variables available to filter and react to
> > > > specific events. How that works is described in srandrd(1).

This has an example script, but it's probably very interesting to
think of using x11/autorandr in there...

> > > > Comment/OK for import?
> > > 
> > > I noticed the CFLAGS weren't quite right. I adjusted the patch to
> > > remove -Os and add the OpenBSD CFLAGS (-O2 -pipe).
> > > 
> > > Update attached.
> > 
> > Can't test it right now, but the port looks fine and seems useful.
> > OK op@ to import
> > 
> > nits:
> > 
> >  - please remove the stray empty lines at the bottom of DESCR
> >  - maybe I'd drop the "By default srandr forks to the background [...]"
> >    from the DESCR, doesn't seem the place to document such behaviour.
> >    Thankfully, this port ships a manual describing the tool.
> >  - to save a few lines, you could consider using the shiny new DIST_TUPLE
> >    (just a suggestion)
> 
> Thanks. I removed the nits and added DIST_TUPLE. I haven't used it
> before, so thanks for suggesting.
> 
> I'll import after one more OK.

The LICENSE calls itself MIT/X Consortium License in the LICENSE file:

- # IT/X Consortium License
+ # MIT/X Consortium License

> SUBST_VARS =    ${WRKSRC}/Makefile

This line doesn't make sense. Look at the result:

$ make show=SUBST_VARS
/usr/ports/pobj/srandrd-0.6.3/srandrd-0.6.3/Makefile ARCH BASE_PKGPATH 
FLAVOR_EXT FULLPKGNAME HOMEPAGE  LOCALBASE LOCALSTATEDIR MACHINE_ARCH 
MAINTAINER  PREFIX RCDIR SYSCONFDIR TRUEPREFIX X11BASE PKGSTEM

SUBST_VARS is the list of variables that will be substituted. You may
have meant to do what SUBST_CMD does, but as it isn't in your Makefile,
you probably don't even need that. I recommend reading SUBST_* in
bsd.port.mk(5).

Regarding the patch, I would lean towards just adding CFLAGS/LDFLAGS in
there and then adding the likes of '-I${X11BASE}/include' and
'-L${X11BASE}/lib' to the port Makefile with e.g.

CFLAGS += -I${X11BASE}/include
LDFLAGS += -L${X11BASE}/lib

This makes it easier to amend in the future if the need arises.

Lastly, as this is a demon, should this come with an rc file and a
dedicated user, so that it can be run on system startup? With X11
applications, this makes it a bit weirder to launch before .xsession.
Not sure if that's worth a consideration, but I'm thinking of it
because of some contortions that I've done with sensorsd(8) and
something like in the sensorsd script:

su -l thfr -c "env DISPLAY=:0 $command"

Reply via email to