ENIGMA Forums

General fluff => Announcements => Topic started by: Goombert on October 01, 2018, 07:53:45 pm

Title: MSYS2, Pacboy, and Virtual Packages
Post by: Goombert on October 01, 2018, 07:53:45 pm
I want to take a quick minute to explain a little bit about Pacboy because Hugar brought a user's installation issues to my attention over Discord. You can consider this post to be a sort of technical explanation and not really an announcement, but I want to try to clarify this for everybody and not just the one person.

The user was having a problem installing git using Pacboy because I forgot a colon on the install page for Windows. The [snip]git[/snip] package in MSYS2 is actually what's called a "virtual" package.
https://github.com/msys2/msys2/wiki/Using-packages#installing-a-package

Because the package is virtual, when you install it with Pacman, you only need to specify [snip]git[/snip] without any [snip]x86_64[/snip] or [snip]i686[/snip] suffix. Now what Pacboy is, is it's a bash script written by the MSYS2 people that makes it easier to install Pacman packages so you don't have to specify the long package suffixes.
https://github.com/msys2/msys2/wiki/Using-packages#avoiding-writing-long-package-names

Long story short, with Pacboy the [snip]:x[/snip] is for x86_64 (64 bit) and [snip]:i[/snip] is for i686 (32 bit) just as our instructions said before, but a plain [snip]:[/snip] after the package name, like [snip]git:[/snip], should be used for virtual packages.

Quote from: Pacboy Terminal Prompt
    Pacboy 2016.6.24
    Copyright (C) 2015, 2016 Renato Silva
    Licensed under BSD

    This is a pacman wrapper for MSYS2 which handles the package prefixes
    automatically, and provides human-friendly commands for common tasks.

    Usage:
        pacboy [command] [arguments]
        Arguments will be passed to pacman or pkgfile after translation:

        For 64-bit MSYS2, name:i means i686-only
        For 64-bit MSYS2, name:x means x86_64-only
        For MSYS shell, name:m means mingw-w64
        For all shells, name: disables any translation for name
        For all shells, repository::name means repository/name

I've updated our Windows installation instructions to clarify all of this.
https://enigma-dev.org/docs/wiki/index.php?title=Install%3AWindows&action=historysubmit&diff=31845&oldid=31833
Title: Re: MSYS2, Pacboy, and Virtual Packages
Post by: Turbine on October 04, 2018, 08:03:39 am
Please add 'make' to the dependencies. The line in the documentation did not contain this package for some reason.
Title: Re: MSYS2, Pacboy, and Virtual Packages
Post by: Goombert on October 04, 2018, 03:51:41 pm
Edit: This post is incorrect slightly, please read my second reply below!!!

Hi Turbine! There's actually no need because the [snip]toolchain:x[/snip] package that is in the list already includes make.

Quote from: MinGW64 Pacboy
$ pacboy -S toolchain:x
:: There are 17 members in group mingw-w64-x86_64-toolchain:
:: Repository mingw64
   1) mingw-w64-x86_64-binutils  2) mingw-w64-x86_64-crt-git
   3) mingw-w64-x86_64-gcc  4) mingw-w64-x86_64-gcc-ada
   5) mingw-w64-x86_64-gcc-fortran  6) mingw-w64-x86_64-gcc-libgfortran
   7) mingw-w64-x86_64-gcc-libs  8) mingw-w64-x86_64-gcc-objc
   9) mingw-w64-x86_64-gdb  10) mingw-w64-x86_64-headers-git
   11) mingw-w64-x86_64-libmangle-git  12) mingw-w64-x86_64-libwinpthread-git
   13) mingw-w64-x86_64-make  14) mingw-w64-x86_64-pkg-config
   15) mingw-w64-x86_64-tools-git  16) mingw-w64-x86_64-winpthreads-git
   17) mingw-w64-x86_64-winstorecompat-git
Enter a selection (default=all):
Title: Re: MSYS2, Pacboy, and Virtual Packages
Post by: Goombert on October 09, 2018, 08:16:24 pm
Sorry, Turbine, you are in fact correct that there are still some issues there. This revelation came to me thanks to HitCoder over Discord who was having trouble setting up a 32 bit installation.

The issue here is that there are actually 3 separate make packages that can be installed. There is a global MSYS one and two MinGW ones (one for each architecture). The MSYS one happens to be a virtual package just like git is and must be installed accordingly. So I have updated the Wiki instructions again.
https://enigma-dev.org/docs/wiki/index.php?title=Install%3AWindows&action=historysubmit&diff=31854&oldid=31853

To install the needed make packages you actually need to do:
Code: (bash) [Select]
# 64 bit
pacboy -S toolchain:x make:
# 32 bit
pacboy -S toolchain:i make:

The [snip]toolchain[/snip] group includes the MinGW make and the [snip]make:[/snip] virtual package includes the MSYS one. Sorry about all the confusion, and I think this should finally resolve this issue.