all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Xinglu Chen <public@yoctocell.xyz>
To: zimoun <zimon.toutoune@gmail.com>,
	Liliana Marie Prikler <liliana.prikler@ist.tugraz.at>,
	52731@debbugs.gnu.org
Subject: [bug#52731] [PATCH] import: texlive: Check if Subversion is installed.
Date: Wed, 22 Dec 2021 16:21:49 +0100	[thread overview]
Message-ID: <8735mkwtpu.fsf@yoctocell.xyz> (raw)
In-Reply-To: <867dbwsop1.fsf@gmail.com>

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

Hi,

zimoun schrieb am Mittwoch der 22. Dezember 2021 um 15:23 +01:

> Hi,
>
> Your patch is an improvement considering this old discussion [1].
>
> 1: <https://issues.guix.gnu.org/issue/28303#5>

Oh, looks like this has been a problem for a while, and I suspect that
it was the root cause of [1] too.

[1]: <https://yhetil.org/guix/87im0do5iq.fsf@yoctocell.xyz>

> On Wed, 22 Dec 2021 at 14:42, Xinglu Chen <public@yoctocell.xyz> wrote:
>
>> Which ‘svn-fetch’ are you referring to (there are two AFAICS)?  The
>> Texlive importer uses ‘download-multi-svn-to-store’, which itself uses
>> ‘svn-fetch’ from (guix build svn), but it requires the ‘svn’ program to
>> be in PATH.
>>
>> There is another ‘svn-fetch’ procedure, in (guix svn-download), but that
>> one returns a fixed-output derivation, so it can only be used if we
>> already know the hash (which we don’t, that’s why we are fetching the
>> SVN repo).
>
> The one in (guix svn-download) uses under the hood (guix build svn), if
> I read correctly:
>
> --8<---------------cut here---------------start------------->8---
>       #~(begin
>           (use-modules (guix build svn))
>           (svn-fetch '#$(svn-reference-url ref)
>                      '#$(svn-reference-revision ref)
>                      #$output
>                      #:svn-command (string-append #+svn "/bin/svn")
>                      #:recursive? #$(svn-reference-recursive? ref)
>                      #:user-name #$(svn-reference-user-name ref)
>                      #:password #$(svn-reference-password ref)))))
> --8<---------------cut here---------------end--------------->8---
>
> Anyway. :-)
>
>> Importers that fetch a Git repo don’t need ‘git’ to be in PATH since
>> they use the Guile-Git bindings to libgit2.  But we don’t have Guile
>> bindings to SVN (or Hg, CVS, Bzr), so the program has to be installed on
>> the host system.
>
> I think it is not related how the call is done, here (invoke “svn”
> “export” …) and not (libsvn-export …).

My point was that because we don’t have Guile bindings to any VCS except
Git, the user needs to have the corresponding VCS program installed in
order for the importer to fetch the repo.

> In the snippet above, #+svn is transparently picked from the current
> subversion package.  Maybe the bit
>
> --8<---------------cut here---------------start------------->8---
> (define (subversion-package)
>   "Return the default Subversion package."
>   (let ((distro (resolve-interface '(gnu packages version-control))))
>     (module-ref distro 'subversion)))
> --8<---------------cut here---------------end--------------->8---
>
> could go to ’(guix build svn)’, used overthere instead of “#:key
> (svn-command "svn")”; and maybe exported if needed.
>
> WDYT?

Sure, that sounds like a nice refactoring.  It seems to apply to the
other VCSs too.  :-)

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

  reply	other threads:[~2021-12-22 15:24 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-22  9:01 [bug#52731] [PATCH] import: texlive: Check if Subversion is installed Xinglu Chen
2021-12-22 11:50 ` Liliana Marie Prikler
2021-12-22 13:42   ` Xinglu Chen
2021-12-22 14:23     ` zimoun
2021-12-22 15:21       ` Xinglu Chen [this message]
2022-11-17 13:10 ` [bug#52731] (no subject) yarl baudig

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=8735mkwtpu.fsf@yoctocell.xyz \
    --to=public@yoctocell.xyz \
    --cc=52731@debbugs.gnu.org \
    --cc=liliana.prikler@ist.tugraz.at \
    --cc=zimon.toutoune@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.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

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.