Changes between Version 2 and Version 3 of Ticket #68233, comment 8


Ignore:
Timestamp:
Oct 2, 2023, 2:24:25 AM (7 months ago)
Author:
kencu (Ken)
Comment:

Legend:

Unmodified
Added
Removed
Modified
  • Ticket #68233, comment 8

    v2 v3  
    1 MacPorts has a variant problem / addiction. The first step towards recovery from any addiction is to acknowledge there is an issue.
     1Herby, you are no doubt right.
    22
    3 This, for example, is an utterly incomprehensible mess:
     3I aim for fewer variants, but I may be in the minority here.
    44
    5 {{{
    6 % port variants mpv
    7 mpv has the variants:
    8 [+]audiocd: Enable Audio CD support via libcdio-paranoia
    9 [+]bluray: Enable Bluray and AACS/BD+ encryption support
    10 [+]bundle: Enable the optional macOS bundle of mpv
    11    caca: Enable animated ASCII art video output
    12    debug: Compile with debugging symbols
    13 [+]dvd: Enable DVD and DeCSS support
    14    jack: Enable Jack Audio Connection Kit support
    15 [+]libarchive: Enable transparent handling of Zip files and other compressed
    16                formats
    17    libmpv: Enable the libmpv library
    18 [+]network: Enable networking support via youtube-dl (supports wide variety of
    19             pages)
    20      * conflicts with ytdlp
    21    openal: Enable OpenAL support
    22 [+]opengl: Enable OpenGL output support. Both the CoreVideo and X11 (GLX)
    23            outputs are supported
    24 [+]osd: Enable onscreen display and TrueType font support
    25    printable_doc: Generate printable documents (PDF help)
    26    pulseaudio: Enable PulseAudio support
    27    python310: Use Python 3.10 to build mpv and generate man pages
    28      * conflicts with python311 python38 python39
    29 [+]python311: Use Python 3.11 to build mpv and generate man pages
    30      * conflicts with python310 python38 python39
    31    python37: Legacy variant for Python 3.7 mapping to Python 3.8
    32      * conflicts with python310 python311 python39
    33      * requires python38
    34    python38: Use Python 3.8 to build mpv and generate man pages
    35      * conflicts with python310 python311 python39
    36    python39: Use Python 3.9 to build mpv and generate man pages
    37      * conflicts with python310 python311 python38
    38 [+]rubberband: Enable support for the Rubber Band library, adding audio pitch
    39                and speed control
    40    screenshot: Enable optional screenshot support
    41    uchardet: Enable the uchardet encoding detector
    42    x11: Enable X11 support
    43    ytdlp: Enable networking support via yt-dlp instead of youtube-dl (supports
    44           wide variety of pages)
    45      * conflicts with network
    46 }}}
    47 
    48 which would be less of a mess if any of the builds were tested with the non-default variants enabled, or the default variant disabled, which they NEVER are.
    49 
    50 Nobody can think of that mess as a good user experience, especially for new users. I hope you can agree with that, otherwise we're not even close to the same page.
    51 
    52 This is beautiful:
    53 
    54 {{{
    55  % port variants MPlayer
    56 MPlayer has the variants:
    57    universal: Build for multiple architectures
    58 }}}
    59 
    60 The MPlayer port used to be just as bad as mpv, but because I used MPlayer, I had an interest in cleaning it up and making it work properly on all the systems I use, Tiger through Ventura, and it does. If someone opens a ticket about MPlayer, I know exactly how it is built -- but there are no open tickets (well, other than this one).
    61 
    62 Having a plethora of messy variants that cannot realistically be tested is just -- asking for trouble, to put it gently. A knowledgeable user should set up the port with the broadly correct set of options enabled, and then maintain that.
    63 
    64 It's managable. It's maintainable. It's testable, and the buildbots built it on every system. It's good. There is peace in the universe with that approach. That is the only method I plan to support. In my world, there would be exactly two sets of variants in macports:
    65 
    66 1. universal or no
    67 1. x11 or quartz
    68 
    69 and all the other variants would be gradually purged out of all the ports.
    70 
    71 Now I don't own MPlayer, and as there is disagreement about how it should be managed, I released it back to the pool.  Have at it!
     5Just trying to keep things manageably simple, but that is my tendency.