Subject: [bug#27898] [PATCH 1/2] gnu: Use 'modify-phases' syntax.

From: Marius Bakke <[email-masked]>
Date: Wed, 02 Aug 2017 22:08:18 +0200

Leo Famulari <[email-masked]> writes:

> On Wed, Aug 02, 2017 at 09:12:09PM +0200, Marius Bakke wrote:
>> Kei Kebreau <[email-masked]> writes:
>> 
>> > * gnu/packages/admin.scm (mingetty, clusterssh, sudo, wpa-supplicant-minimal,
>> > wpa-supplicant, wakelan, acpica, tree, direvent, dstat)[arguments]: Use
>> > 'modify-phases' syntax.
>> > * gnu/packages/algebra.scm (arb)[arguments]: Likewise.
>> > * gnu/packages/apr.scm (apr-util)[arguments]: Likewise.
>> > * gnu/packages/audio.scm (clalsadrv, fluidsynth, faad2, lv2-mda-piano,
>> > lv2-mda-epiano, timidity++, vamp, soundtouch, portaudio, rsound,
>> > zita-convolver, zita-alsa-pcmi)[arguments]: Likewise.
>> > * gnu/packages/backup.scm (rdup, btar)[arguments]: Likewise.
>> > * gnu/packages/bioinformatics.scm (bedops, bwa, crossmap, express,
>> > flexbar, grit, hisat, ngs-sdk, subread)[arguments]: Likewise.
>> > * gnu/packages/bittorrent.scm (transmission)[arguments]: Likewise.
>> > * gnu/packages/cdrom.scm (cd-discid)[arguments]: Likewise.
>> > * gnu/packages/compression.scm (sharutils)[arguments]: Likewise.
>> > * gnu/packages/conky.scm (conky)[arguments]: Likewise.
>> > * gnu/packages/databases.scm (bdb, bdb-5.3)[arguments]: Likewise.
>> > * gnu/packages/debug.scm (delta, c-reduce)[arguments]: Likewise.
>> > * gnu/packages/display-managers.scm (slim)[arguments]: Likewise.
>> > * gnu/packages/dns.scm (dnsmasq)[arguments]: Likewise.
>> > * gnu/packages/emacs.scm (geiser, emacs-wget, bbdb)[arguments]: Likewise.
>> > * gnu/packages/engineering.scm (pcb)[arguments]: Likewise.
>> > * gnu/packages/firmware.scm (ath9k-htc-firmware)[arguments]: Likewise.
>> > * gnu/packages/flashing-tools.scm (flashrom)[arguments]: Likewise.
>> > * gnu/packages/fltk.scm (fltk)[arguments]: Likewise.
>> > * gnu/packages/freedesktop.scm (python-pyxdg)[arguments]: Likewise.
>> > * gnu/packages/gd.scm (perl-gd)[arguments]: Likewise.
>> > * gnu/packages/gimp.scm (gegl)[arguments]: Likewise.
>> > * gnu/packages/gkrellm.scm (gkrellm)[arguments]: Likewise.
>> > * gnu/packages/glib.scm (glibmm)[arguments]: Likewise.
>> > * gnu/packages/gl.scm (glew)[arguments]: Likewise.
>> > * gnu/packages/gnome.scm (icon-naming-utils, orbit2, libbonobo, gnome-vfs,
>> > libgnome, libbonoboui, goffice-0.8, dconf)[arguments]: Likewise.
>> > * gnu/packages/gprolog.scm (gprolog)[arguments]: Likewise.
>> > * gnu/packages/gps.scm (gpscorrelate)[arguments]: Likewise.
>> > * gnu/packages/graphics.scm (agg)[arguments]: Likewise.
>> > * gnu/packages/gtk.scm (ganv, gtksourceview-2, guile-present, python2-pycairo)
>> > [arguments]: Likewise.
>> > * gnu/packages/guile.scm (guile-1.8)[arguments]: Likewise.
>> > * gnu/packages/guile-wm.scm (guile-wm)[arguments]: Likewise.
>> > * gnu/packages/hugs.scm (hugs)[arguments]: Likewise.
>> > * gnu/packages/hurd.scm (gnumach-headers, hurd-headers, hurd-minimal)
>> > [arguments]: Likewise.
>> > * gnu/packages/image-viewers.scm (feh, sxiv)[arguments]: Likewise.
>> > * gnu/packages/libcanberra.scm (libcanberra)[arguments]: Likewise.
>> > * gnu/packages/libsigsegv.scm (libsigsegv)[arguments]: Likewise.
>> > * gnu/packages/linux.scm (zerofree, net-tools, bridge-utils, iw, fuse,
>> > unionfs-fuse/static, lm-sensors, i2c-tools, xsensors, perf, mdadm, libaio,
>> > module-init-tools)[arguments]: Likewise.
>> > * gnu/packages/lisp.scm (ccl)[arguments]: Likewise.
>> > * gnu/packages/lout.scm (lout)[arguments]: Likewise.
>> > * gnu/packages/lua.scm (luajit)[arguments]: Likewise.
>> > * gnu/packages/machine-learning.scm (shogun)[arguments]: Likewise.
>> > * gnu/packages/mail.scm (exim)[arguments]: Likewise.
>> > * gnu/packages/man.scm (man-pages, txt2man)[arguments]: Likewise.
>> > * gnu/packages/maths.scm (lapack, superlu-dist, openlibm, openspecfun,
>> > suitesparse)[arguments]: Likewise.
>> > * gnu/packages/messaging.scm (bitlbee)[arguments]: Likewise.
>> > * gnu/packages/mp3.scm (libmad, id3lib, mp3info)[arguments]: Likewise.
>> > * gnu/packages/music.scm (solfege)[arguments]: Likewise.
>> > * gnu/packages/noweb.scm (noweb)[arguments]: Likewise.
>> > * gnu/packages/patchutils.scm (patchutils, quilt, colordiff)[arguments]:
>> > Likewise.
>> > * gnu/packages/pdf.scm (xpdf, zathura-cb, zathura-ps, zathura-djvu,
>> > zathura-pdf-poppler, zathura, podofo, fbidag)[arguments]: Likewise.
>> > * gnu/packages/perl.scm (perl-file-list, perl-test-harness)[arguments]:
>> > Likewise.
>> > * gnu/packages/photo.scm (gphoto2)[arguments]: Likewise.
>> > * gnu/packages/popt.scm (popt)[arguments]: Likewise.
>> > * gnu/packages/pretty-print.scm (source-highlight, astyle)[arguments]:
>> > Likewise.
>> > * gnu/packages/pumpio.scm (pumpa)[arguments]: Likewise.
>> > * gnu/packages/python.scm (python-passlib, python-pycrypto, python2-empy,
>> > python-sqlalchemy, python-docopt)[arguments]: Likewise.
>> > * gnu/packages/rdf.scm (lrdf)[arguments]: Likewise.
>> > * gnu/packages/regex.scm (tre)[arguments]: Likewise.
>> > * gnu/packages/rrdtool.scm (rrdtool)[arguments]: Likewise.
>> > * gnu/packages/ruby.scm (ruby-2.1, ruby-1.8)[arguments]: Likewise.
>> > * gnu/packages/sawfish.scm (sawfish)[arguments]: Likewise.
>> > * gnu/packages/scheme.scm (racket)[arguments]: Likewise.
>> > * gnu/packages/sdl.scm (guile-sdl)[arguments]: Likewise.
>> > * gnu/packages/serveez.scm (serveez)[arguments]: Likewise.
>> > * gnu/packages/skribilo.scm (skribilo)[arguments]: Likewise.
>> > * gnu/packages/smalltalk.scm (smalltalk)[arguments]: Likewise.
>> > * gnu/packages/suckless.scm (dmenu, slock)[arguments]: Likewise.
>> > * gnu/packages/tcl.scm (expect)[arguments]: Likewise.
>> > * gnu/packages/telephony.scm (commoncpp)[arguments]: Likewise.
>> > * gnu/packages/textutils.scm (recode, libgtextutils)[arguments]:
>> > Likewise.
>> > * gnu/packages/time.scm (time)[arguments]: Likewise.
>> > * gnu/packages/tor.scm (privoxy)[arguments]: Likewise.
>> > * gnu/packages/uucp.scm (uucp)[arguments]: Likewise.
>> > * gnu/packages/video.scm (libdvdnav-4)[arguments]: Likewise.
>> > * gnu/packages/web-browsers.scm (lynx)[arguments]: Likewise.
>> > * gnu/packages/web.scm (tinyproxy)[arguments]: Likewise.
>> > * gnu/packages/wicd.scm (wicd)[arguments]: Likewise.
>> > * gnu/packages/wm.scm (bspwm)[arguments]: Likewise.
>> > * gnu/packages/xdisorg.scm (sxhkd, xcape)[arguments]: Likewise.
>> > * gnu/packages/xfce.scm (xfconf)[arguments]: Likewise.
>> > * gnu/packages/xfig.scm (transfig)[arguments]: Likewise.
>> > * gnu/packages/xorg.scm (imake)[arguments]: Likewise.
>> > ---
>> >  gnu/packages/admin.scm            | 294 ++++++++++++++---------------
>> >  gnu/packages/algebra.scm          |  31 ++--
>> >  gnu/packages/apr.scm              |  25 ++-
>> >  gnu/packages/audio.scm            | 193 +++++++++----------
>> >  gnu/packages/backup.scm           |  33 ++--
>> >  gnu/packages/bioinformatics.scm   | 250 +++++++++++++------------
>> >  gnu/packages/bittorrent.scm       |  33 ++--
>> >  gnu/packages/cdrom.scm            |   2 +-
>> >  gnu/packages/compression.scm      |  16 +-
>> >  gnu/packages/conky.scm            |  31 ++--
>> >  gnu/packages/databases.scm        | 102 +++++-----
>> >  gnu/packages/debug.scm            |  70 +++----
>> >  gnu/packages/display-managers.scm |  22 +--
>> >  gnu/packages/dns.scm              |   2 +-
>> >  gnu/packages/docbook.scm          |  26 +--
>> >  gnu/packages/emacs.scm            |  74 ++++----
>> >  gnu/packages/engineering.scm      |  43 +++--
>> >  gnu/packages/firmware.scm         |  48 ++---
>> >  gnu/packages/flashing-tools.scm   |  21 +--
>> >  gnu/packages/fltk.scm             |  42 ++---
>> >  gnu/packages/freedesktop.scm      |  33 ++--
>> >  gnu/packages/gd.scm               |  19 +-
>> >  gnu/packages/gimp.scm             |  30 +--
>> >  gnu/packages/gkrellm.scm          |   4 +-
>> >  gnu/packages/gl.scm               |   2 +-
>> >  gnu/packages/glib.scm             |  33 ++--
>> >  gnu/packages/gnome.scm            | 145 +++++++--------
>> >  gnu/packages/gprolog.scm          |  17 +-
>> >  gnu/packages/gps.scm              |  19 +-
>> >  gnu/packages/graphics.scm         |  13 +-
>> >  gnu/packages/gtk.scm              |  80 ++++----
>> >  gnu/packages/guile-wm.scm         |  81 ++++----
>> >  gnu/packages/guile.scm            |  36 ++--
>> >  gnu/packages/hugs.scm             |  61 +++---
>> >  gnu/packages/hurd.scm             |  60 +++---
>> >  gnu/packages/image-viewers.scm    |  14 +-
>> >  gnu/packages/libcanberra.scm      |  18 +-
>> >  gnu/packages/libsigsegv.scm       |  13 +-
>> >  gnu/packages/linux.scm            | 379 +++++++++++++++++++-------------------
>> >  gnu/packages/lisp.scm             |  61 +++---
>> >  gnu/packages/lout.scm             | 142 +++++++-------
>> >  gnu/packages/lua.scm              |   2 +-
>> >  gnu/packages/machine-learning.scm |  88 +++++----
>> >  gnu/packages/mail.scm             |  90 ++++-----
>> >  gnu/packages/man.scm              |   4 +-
>> >  gnu/packages/maths.scm            | 119 ++++++------
>> >  gnu/packages/messaging.scm        |  27 ++-
>> >  gnu/packages/mp3.scm              |  87 ++++-----
>> >  gnu/packages/music.scm            | 102 +++++-----
>> >  gnu/packages/noweb.scm            |  79 ++++----
>> >  gnu/packages/patchutils.scm       | 120 ++++++------
>> >  gnu/packages/pdf.scm              |  69 +++----
>> >  gnu/packages/perl.scm             |  31 ++--
>> >  gnu/packages/photo.scm            |  15 +-
>> >  gnu/packages/popt.scm             |  17 +-
>> >  gnu/packages/pretty-print.scm     |  65 +++----
>> >  gnu/packages/pumpio.scm           |  32 ++--
>> >  gnu/packages/python.scm           |  47 +++--
>> >  gnu/packages/rdf.scm              |  40 ++--
>> >  gnu/packages/regex.scm            |  20 +-
>> >  gnu/packages/rrdtool.scm          |  19 +-
>> >  gnu/packages/ruby.scm             |  40 ++--
>> >  gnu/packages/sawfish.scm          |  50 ++---
>> >  gnu/packages/scheme.scm           | 134 +++++++-------
>> >  gnu/packages/sdl.scm              |  46 ++---
>> >  gnu/packages/serveez.scm          |  15 +-
>> >  gnu/packages/skribilo.scm         |  29 +--
>> >  gnu/packages/smalltalk.scm        |  17 +-
>> >  gnu/packages/suckless.scm         |   4 +-
>> >  gnu/packages/tcl.scm              |  15 +-
>> >  gnu/packages/telephony.scm        |  12 +-
>> >  gnu/packages/textutils.scm        |  25 ++-
>> >  gnu/packages/time.scm             |  19 +-
>> >  gnu/packages/tor.scm              |  14 +-
>> >  gnu/packages/uucp.scm             |  24 +--
>> >  gnu/packages/video.scm            |   9 +-
>> >  gnu/packages/web-browsers.scm     |  10 +-
>> >  gnu/packages/web.scm              |  15 +-
>> >  gnu/packages/wicd.scm             | 214 +++++++++++----------
>> >  gnu/packages/wm.scm               |   2 +-
>> >  gnu/packages/xdisorg.scm          |   5 +-
>> >  gnu/packages/xfce.scm             |  23 +--
>> >  gnu/packages/xfig.scm             |  75 ++++----
>> >  gnu/packages/xorg.scm             |  39 ++--
>> >  84 files changed, 2253 insertions(+), 2274 deletions(-)
>> 
>> Wow! That is a lot of code to review at once. Can you split this into
>> maybe one patch per file? I guess some can be consolidated, but we
>> should try to make each patch easily digestible both for current and
>> future code reviewers. Hopefully we can alternate on the LGTMs.
>
> I agree, wow! Thanks for this. It should help new Schemers to feel more
> comfortable editing packages.
>
> This might be annoying but it should wait until after the core-updates
> branch is done and merged into the master branch. I want to minimize the
> number of merge conflicts because they are 1) annoying and 2) relatively
> opaque when reading the Git history. Marius's suggestion is another good
> one, and would help with issues like that.
>
> But if we were to wait until after core-updates and push it as one
> commit, I wouldn't mind. It's up to the two of you and everyone else :)

Yeah I guess the squashed patch is okay. If we delay the patches until
after 'staging' and 'python-updates' as well, no merge will be
necessary. But it won't be a pretty cherry-pick either, by then.

I don't really have a strong opinion either way. But I'd hate to the one
resolving potentially 100s of merge conflicts at once ;-) Cherry-picking
at least restricts the set of conflicts to these changes.