unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: david larsson <david.larsson@selfhosted.xyz>
To: Tobias Geerinckx-Rice <me@tobias.gr>
Cc: 47495@debbugs.gnu.org,
	guix-patches-bounces+david.larsson=selfhosted.xyz@gnu.org
Subject: [bug#47495] [PATCH] gnu: vsftpd: Use CentOS version and patches.
Date: Tue, 30 Mar 2021 20:38:58 +0200	[thread overview]
Message-ID: <ce5f489144a0f59ce59f84f2f54a4aa8@selfhosted.xyz> (raw)
In-Reply-To: <87y2e4hd2z.fsf@nckx>

On 2021-03-30 17:32, Tobias Geerinckx-Rice wrote:

> As indicated on IRC I've made some changes to the patch, mainly to
> avoid hard-coding all patches.  The result is attached.  Let me know
> what you think.

It looks great! Especially nice to see that you separated the patch and 
unpack phases - it looks much better now.

>> 
>>      * gnu/packages/ftp.scm (vftpd): Use CentOS version and      
>> patches.
>   ^^^^
> 
> This is what happens when you copy commit messages from git and paste
> them right back in :-)  In that case, remove the four leading spaces.

Yep, thats what I did :-) will fix next time!

Reg. why to use the significantly patched CentOS variant (asked in your 
updated patch's comments): the email passwords thing was a mistake to 
mention by me in IRC - that feature was probably already there - 
however, the tlsv1.2 was the main reason for switching to the CentOS 
version - other features added by the whole patch-set I don't know much 
about except from glancing over them and it looks mostly like bug and 
security fixes to me.

> 
>> +  (let ((version "3.0.3")
> 
> I renamed this to UPSTREAM-VERSION, so we can show a more specific
> VERSION field in the Guix UI.  What we offer isn't ‘3.0.3’ any more.

Ok, I think I understand.

>> +        (revision "32")
> 
> I subjectively added ‘.el8’ here, mainly to factor it out below.
> Neither of us knows what it means, though...

That is fine with me.

> 
>> +           (add-after 'unpack 'patch-installation-directory
>> +             (lambda* (#:key outputs #:allow-other-keys)
>> +               (substitute* "Makefile"
>> +                 (("/usr") (assoc-ref outputs "out")))
>> +               #t))
> 
> Moved below the redefined 'unpack phase for clarity.

Great! I had in mind to do the same myself, but didn't due to a 
combination of a lack of Guile/Guix coding skills and time.

>> +           (replace 'unpack
>> +             (lambda* (#:key source #:allow-other-keys)
>> +                 (let ((version "3.0.3")
>> +                       (revision "32")
>> +                       (centos-version "8.3.2011"))
> 
> OK, so, as mentioned on IRC this can be avoided by quasiquoting
> <arguments> (as it already was, here) and using ,version instead.
> 
> Quoting is probably the most confusing-yet-basic concept in Scheme.

Looks good to me! I am actually quite familiar with unquoting, including 
g-exp unquoting things, and I somehow missed that I was in a quasiquote 
context from after "arguments"... I intend to improve!

> 
>> +
>> +                   (invoke "7z" "e" source (string-append "-o" 
>> "./vsftpd-"
>> + version "-"
>> + revision ".el8.src.cpio"))
>> +                   (chdir (string-append "./vsftpd-" version "-"
>> +                                         revision ".el8.src.cpio"))
>> +                   (invoke "cpio" "-idmv" (string-append 
>> "--file=./vsftpd-"
>> + version "-"
>> + revision ".el8.src.cpio"))
>> +                   (invoke "tar" "xvf" (string-append "./vsftpd-" 
>> version ".tar.gz"))
> 
> This dance had a few steps too many IMO, so I simplified it.  It's OK
> to keep the unpacked steps around during the (short) build process;
> they are tiny by today's standards.

Agreed. I was not very happy with this myself. Thanks for fixing!

> 
>> +                   (let ((patches
> 
> I understand the reason for this: the patches need to be applied in
> this order, or patching will appear to succeed but result in
> unbuildable source.  A simple FIND-FILES is right out.
> 
> However, since the order is specified in vsftpd.spec, it's safer,
> shorter, and simply more fun to parse it ourselves.
> 
>> +                     (chdir (string-append "./vsftpd-" version))
>> +                     (invoke "git" "init" ".")
>> +                     (invoke "git" "config" "user.email" 
>> "you@example.com")
>> +                     (invoke "git" "config" "user.name" "Your Name" )
>> +                     (invoke "git" "add" ".")
>> +                     (invoke "git" "commit" "-m" "first")
>> +                     (map (lambda (x) (invoke "git" "am" 
>> (string-append "./" x))) patches)
>> +                     (map (lambda (x) (invoke "rm" (string-append 
>> "./" x))) patches)
>> +                     (invoke "rm" "-rf" "./.git")
>> +                     (chdir "../")
>> +                     (invoke "mv" (string-append "./vsftpd-" version) 
>> "../")
>> +                     (chdir "../")
>> +                     (invoke "rm" "-rf" (string-append "./vsftpd-" 
>> version "-"
>> +                                                       revision 
>> ".el8.src.cpio"))
>> +                     (chdir (string-append "./vsftpd-" version)))
> 
> You lost me here.  Why all the git?  I removed all mention of git from
> the package, since it didn't seem necessary, but please correct me if
> needful.

I am, or was, simply unfamiliar with the simplicity of just using 
"patch". I tried git am which failed and reported errors that was solved 
by the additional git commands. Your replacement is exactly what I need 
to learn more about, and looks great, thanks!

> 
>> +      (native-inputs `(("openssl" ,openssl)
>> +                       ("linux-pam" ,linux-pam)
>> +                       ("p7zip" ,p7zip)
>> +                       ("cpio" ,cpio)
>> +                       ("git" ,git-minimal)
>> +                       ("libcap" ,libcap)))
> 
> These are *all* new, correct?  I removed git and added them all to the
> commit message (check it out).

Yep!

> 
> Thanks again for your work!
> 
> T G-R

Well..., thank you for your work! You made this patch a lot better! :-)

Best regards,
David Larsson




  parent reply	other threads:[~2021-03-30 18:40 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-03-30  7:52 [bug#47495] [PATCH] gnu: vsftpd: Use CentOS version and patches david larsson
2021-03-30  9:20 ` david larsson
2021-03-30 15:32   ` Tobias Geerinckx-Rice via Guix-patches via
2021-03-30 15:34     ` Tobias Geerinckx-Rice via Guix-patches via
2021-03-30 18:38     ` david larsson [this message]
2021-03-30 19:41       ` bug#47495: " Tobias Geerinckx-Rice via Guix-patches via

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

  List information: https://guix.gnu.org/

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

  git send-email \
    --in-reply-to=ce5f489144a0f59ce59f84f2f54a4aa8@selfhosted.xyz \
    --to=david.larsson@selfhosted.xyz \
    --cc=47495@debbugs.gnu.org \
    --cc=guix-patches-bounces+david.larsson=selfhosted.xyz@gnu.org \
    --cc=me@tobias.gr \
    /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 public inbox

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

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).