All of lore.kernel.org
 help / color / mirror / Atom feed
From: Patrick Steinhardt <ps@pks.im>
To: Max Gautier <mg@max.gautier.name>
Cc: git@vger.kernel.org, "Lénaïc Huard" <lenaic@lhuard.fr>,
	"Derrick Stolee" <stolee@gmail.com>
Subject: Re: [RFC PATCH 1/5] maintenance: package systemd units
Date: Thu, 21 Mar 2024 15:44:05 +0100	[thread overview]
Message-ID: <ZfxHtetjUIUByqeF@tanuki> (raw)
In-Reply-To: <Zfw4XNJdZqgZhvOv@framework>

[-- Attachment #1: Type: text/plain, Size: 3955 bytes --]

On Thu, Mar 21, 2024 at 02:38:36PM +0100, Max Gautier wrote:
> On Thu, Mar 21, 2024 at 01:37:30PM +0100, Patrick Steinhardt wrote:
> > On Mon, Mar 18, 2024 at 04:31:15PM +0100, Max Gautier wrote:
> > 
> > It would be great to document _why_ we want to package the systemd units
> > alongside with Git.
> > 
> > > Signed-off-by: Max Gautier <mg@max.gautier.name>
> > > ---
> > >  Makefile                              |  4 ++++
> > >  systemd/user/git-maintenance@.service | 16 ++++++++++++++++
> > >  systemd/user/git-maintenance@.timer   |  9 +++++++++
> > >  3 files changed, 29 insertions(+)
> > >  create mode 100644 systemd/user/git-maintenance@.service
> > >  create mode 100644 systemd/user/git-maintenance@.timer
> > > 
> > > diff --git a/Makefile b/Makefile
> > > index 4e255c81f2..276b4373c6 100644
> > > --- a/Makefile
> > > +++ b/Makefile
> > > @@ -619,6 +619,7 @@ htmldir = $(prefix)/share/doc/git-doc
> > >  ETC_GITCONFIG = $(sysconfdir)/gitconfig
> > >  ETC_GITATTRIBUTES = $(sysconfdir)/gitattributes
> > >  lib = lib
> > > +libdir = $(prefix)/lib
> > >  # DESTDIR =
> > >  pathsep = :
> > >  
> > > @@ -1328,6 +1329,8 @@ BUILTIN_OBJS += builtin/verify-tag.o
> > >  BUILTIN_OBJS += builtin/worktree.o
> > >  BUILTIN_OBJS += builtin/write-tree.o
> > >  
> > > +SYSTEMD_USER_UNITS := $(wildcard systemd/user/*)
> > > +
> > >  # THIRD_PARTY_SOURCES is a list of patterns compatible with the
> > >  # $(filter) and $(filter-out) family of functions. They specify source
> > >  # files which are taken from some third-party source where we want to be
> > > @@ -3469,6 +3472,7 @@ install: all
> > >  	$(INSTALL) -m 644 $(SCRIPT_LIB) '$(DESTDIR_SQ)$(gitexec_instdir_SQ)'
> > >  	$(INSTALL) $(INSTALL_STRIP) $(install_bindir_xprograms) '$(DESTDIR_SQ)$(bindir_SQ)'
> > >  	$(INSTALL) $(BINDIR_PROGRAMS_NO_X) '$(DESTDIR_SQ)$(bindir_SQ)'
> > > +	$(INSTALL) -Dm 644 -t '$(DESTDIR_SQ)$(libdir)/systemd/user' $(SYSTEMD_USER_UNITS)
> > 
> > I wonder whether we want to unconditionally install those units. Many of
> > the platforms that we support don't even have systemd available, so
> > certainly it wouldn't make any sense to install it on those platforms.
> > 
> > Assuming that this is something we want in the first place I thus think
> > that we should at least make this conditional and add some platform
> > specific quirk to "config.mak.uname".
> > 
> 
> We probably want that (conditional install) but I'm not sure where that
> should go ; I'm not super familiar with autoconf. 
> 
> I just noticed than man 7 daemon (shipped by systemd) propose the
> following snippet for installing systemd system services (should be easy
> enough to adapt for user ervices, I think):
> 
> PKG_PROG_PKG_CONFIG()
> AC_ARG_WITH([systemdsystemunitdir],
>     [AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files])],,
>     [with_systemdsystemunitdir=auto])
> AS_IF([test "x$with_systemdsystemunitdir" = "xyes" -o "x$with_systemdsystemunitdir" = "xauto"], [
>     def_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)
> 
>     AS_IF([test "x$def_systemdsystemunitdir" = "x"],
>   [AS_IF([test "x$with_systemdsystemunitdir" = "xyes"],
>    [AC_MSG_ERROR([systemd support requested but pkg-config unable to query systemd package])])
>    with_systemdsystemunitdir=no],
>   [with_systemdsystemunitdir="$def_systemdsystemunitdir"])])
> AS_IF([test "x$with_systemdsystemunitdir" != "xno"],
>      [AC_SUBST([systemdsystemunitdir], [$with_systemdsystemunitdir])])
> AM_CONDITIONAL([HAVE_SYSTEMD], [test "x$with_systemdsystemunitdir" != "xno"])
> 
> Would something like that work ?

Probably. But while we do have autoconf wired up, the primary way of
building Git does not use it, but rather uses `config.mak.uname`. I'd
recommend to have a look at it to figure out how we handle other
build-time options there.

Patrick

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

  reply	other threads:[~2024-03-21 14:44 UTC|newest]

Thread overview: 53+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-18 15:31 [RFC PATCH 0/5] maintenance: use packaged systemd units Max Gautier
2024-03-18 15:31 ` [RFC PATCH 1/5] maintenance: package " Max Gautier
2024-03-21 12:37   ` Patrick Steinhardt
2024-03-21 13:07     ` Max Gautier
2024-03-21 13:22       ` Patrick Steinhardt
2024-03-21 13:38     ` Max Gautier
2024-03-21 14:44       ` Patrick Steinhardt [this message]
2024-03-21 14:49         ` Max Gautier
2024-03-21 14:48       ` Max Gautier
2024-03-18 15:31 ` [RFC PATCH 2/5] maintenance: add fixed random delay to systemd timers Max Gautier
2024-03-21 12:37   ` Patrick Steinhardt
2024-03-21 13:13     ` Max Gautier
2024-03-18 15:31 ` [RFC PATCH 3/5] maintenance: use packaged systemd units Max Gautier
2024-03-19 12:09   ` Max Gautier
2024-03-19 17:17     ` Eric Sunshine
2024-03-19 18:19       ` Junio C Hamano
2024-03-19 19:38       ` Max Gautier
2024-03-21 12:37   ` Patrick Steinhardt
2024-03-21 13:19     ` Max Gautier
2024-03-18 15:31 ` [RFC PATCH 4/5] maintenance: update systemd scheduler docs Max Gautier
2024-03-21 12:37   ` Patrick Steinhardt
2024-03-18 15:31 ` [RFC PATCH 5/5] DON'T APPLY YET: maintenance: remove cleanup code Max Gautier
2024-03-22 22:11 ` [PATCH v2 0/6] maintenance: use packaged systemd units Max Gautier
2024-03-22 22:11   ` [PATCH v2 1/6] maintenance: use systemd timers builtin randomization Max Gautier
2024-03-22 22:11   ` [PATCH v2 2/6] maintenance: use packaged systemd units Max Gautier
2024-03-23  8:38     ` Eric Sunshine
2024-03-23  9:52       ` Max Gautier
2024-03-22 22:11   ` [PATCH v2 3/6] maintenance: simplify systemctl calls Max Gautier
2024-03-22 23:09     ` Eric Sunshine
2024-03-23 10:25       ` Max Gautier
2024-03-22 22:11   ` [PATCH v2 4/6] maintenance: cleanup $XDG_CONFIG_HOME/systemd/user Max Gautier
2024-03-22 22:38     ` Kristoffer Haugsbakk
2024-03-22 22:43       ` Junio C Hamano
2024-03-23 11:07     ` Max Gautier
2024-03-24 15:45       ` Phillip Wood
2024-03-25  8:36         ` Max Gautier
2024-03-25 16:39           ` Phillip Wood
2024-03-27 16:20             ` Max Gautier
2024-03-22 22:11   ` [PATCH v2 5/6] maintenance: update systemd scheduler docs Max Gautier
2024-03-22 22:11   ` [PATCH v2 6/6] maintenance: update tests for systemd scheduler Max Gautier
2024-03-22 23:02     ` Eric Sunshine
2024-03-23 10:28       ` Max Gautier
2024-03-24 14:54   ` [PATCH v2 0/6] maintenance: use packaged systemd units Phillip Wood
2024-03-24 17:03     ` Eric Sunshine
2024-03-25 10:08       ` phillip.wood123
2024-03-25  8:32     ` Max Gautier
2024-03-25 10:06       ` phillip.wood123
2024-03-25 12:27         ` Max Gautier
2024-03-25 16:39           ` Phillip Wood
2024-03-25 13:45         ` Max Gautier
2024-03-25 16:39           ` Phillip Wood
2024-03-27 16:21             ` Max Gautier
  -- strict thread matches above, loose matches on Subject: below --
2024-03-18 15:07 Max Gautier
2024-03-18 15:07 ` [RFC PATCH 1/5] maintenance: package systemd units Max Gautier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZfxHtetjUIUByqeF@tanuki \
    --to=ps@pks.im \
    --cc=git@vger.kernel.org \
    --cc=lenaic@lhuard.fr \
    --cc=mg@max.gautier.name \
    --cc=stolee@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.