Bug 224823

Summary: [NEW PORT] games/multimc: Qt5 Minecraft launcher with ability to manage multiple instances
Product: Ports & Packages Reporter: tsundoku <me>
Component: Individual Port(s)Assignee: Tobias Kortkamp <tobik>
Status: Closed FIXED    
Severity: Affects Only Me CC: tobik
Priority: ---    
Version: Latest   
Hardware: amd64   
OS: Any   
Attachments:
Description Flags
multimc.shar
none
Resubmission with Qt5 dependencies specified
none
multimc.diff
none
multimc with fix for undeclared identifier FMLlib none

Description tsundoku 2018-01-01 17:34:41 UTC
Created attachment 189319 [details]
multimc.shar
Comment 1 Tobias Kortkamp freebsd_committer freebsd_triage 2018-05-09 12:12:26 UTC
This doesn't build and I think it's also missing some dependencies
e.g. Qt 5 etc.  Please test in Poudriere/Synth or at least make sure
to set DEVELOPER=yes in /etc/make.conf to enable some QA checks about this.

In file included from api/logic/MultiMC_logic_autogen/mocs_compilation.cpp:46:
In file included from api/logic/MultiMC_logic_autogen/NZFZMRXYYQ/moc_FMLLibrariesTask.cpp:9:
api/logic/MultiMC_logic_autogen/NZFZMRXYYQ/../../../../../MultiMC5-0.6.0/api/logic/minecraft/update/FMLLibrariesTask.h:26:8: error: use of undeclared identifier 'FMLlib'
        QList<FMLlib> fmlLibsToProcess;
              ^
In file included from api/logic/MultiMC_logic_autogen/mocs_compilation.cpp:46:
api/logic/MultiMC_logic_autogen/NZFZMRXYYQ/moc_FMLLibrariesTask.cpp:104:18: error: cannot initialize object parameter of type 'Task' with an expression of type 'FMLLibrariesTask'
    return Task::qt_metacast(_clname);
                 ^~~~~~~~~~~
api/logic/MultiMC_logic_autogen/NZFZMRXYYQ/moc_FMLLibrariesTask.cpp:109:17: error: cannot initialize object parameter of type 'Task' with an expression of type 'FMLLibrariesTask'
    _id = Task::qt_metacall(_c, _id, _a);
                ^~~~~~~~~~~
api/logic/MultiMC_logic_autogen/NZFZMRXYYQ/moc_FMLLibrariesTask.cpp:114:32: error: cannot initialize a parameter of type 'QObject *' with an rvalue of type 'FMLLibrariesTask *'
            qt_static_metacall(this, _c, _id, _a);
                               ^~~~
api/logic/MultiMC_logic_autogen/NZFZMRXYYQ/moc_FMLLibrariesTask.cpp:73:52: note: passing argument to parameter '_o' here
void FMLLibrariesTask::qt_static_metacall(QObject *_o, QMetaObject::Call _c, int _id, void **_a)
                                                   ^
In file included from api/logic/MultiMC_logic_autogen/mocs_compilation.cpp:61:
In file included from api/logic/MultiMC_logic_autogen/S3K6MOW2UJ/moc_MinecraftInstance.cpp:9:
api/logic/MultiMC_logic_autogen/S3K6MOW2UJ/../../../../../MultiMC5-0.6.0/api/logic/minecraft/MinecraftInstance.h:21:15: warning: 'saveNow' overrides a member function but is not marked 'override' [-Winconsistent-missing-override]
        virtual void saveNow();
                     ^
api/logic/MultiMC_logic_autogen/EWIEGA46WW/../../../../../MultiMC5-0.6.0/api/logic/BaseInstance.h:73:15: note: overridden virtual function is here
        virtual void saveNow() = 0;
                     ^
1 warning and 4 errors generated.
Comment 2 tsundoku 2018-05-09 17:33:03 UTC
Created attachment 193217 [details]
Resubmission with Qt5 dependencies specified
Comment 3 tsundoku 2018-05-09 17:33:33 UTC
(In reply to Tobias Kortkamp from comment #1)

I added the Qt5 dependencies and built it again. The only other QA warnings are about a some unstripped libraries, which I can also look into, but that is a separate issue. Please try the new attachment.
Comment 4 Tobias Kortkamp freebsd_committer freebsd_triage 2018-05-11 13:17:10 UTC
(In reply to tsundoku from comment #3)
It still doesn't build on 12.0-CURRENT with the same errors I mentioned earlier.
Comment 5 tsundoku 2018-05-11 16:01:06 UTC
I have only built this in 11.1-RELEASE, although I am not sure that would make a difference. There is nothing I can think of in my environment that would have been customized to enable this to build. No custom make.conf rules, customized dependent ports, or anything else unusual relating to port builds, but the only thing I can think to do right now is to try building it again in a from-scratch instance to see what happens.
Comment 6 Tobias Kortkamp freebsd_committer freebsd_triage 2018-05-13 16:31:40 UTC
(In reply to tsundoku from comment #5)
I'm going to attach a cleanup version of the port.  There were still a bunch of
missing build dependencies.

However it still doesn't build and I get the same error as before on
11.1-RELEASE in Poudriere.

Log: https://people.freebsd.org/~tobik/logs/multimc-0.6.0.log
Comment 7 Tobias Kortkamp freebsd_committer freebsd_triage 2018-05-13 16:32:54 UTC
Created attachment 193359 [details]
multimc.diff
Comment 8 Tobias Kortkamp freebsd_committer freebsd_triage 2018-05-26 06:41:18 UTC
So any ideas?
Comment 9 tsundoku 2018-06-02 19:36:41 UTC
Created attachment 193950 [details]
multimc with fix for undeclared identifier FMLlib

Sorry for the delay. I set up a VM with a scratch install of 11.1-RELEASE and managed to reproduce your build error; adding an include to FMLLibrariesTask.h fixed the problem in that environment. Please try my updated submission when you have a chance.
Comment 10 tsundoku 2018-06-02 19:38:37 UTC
Submitted fix for build error.
Comment 11 commit-hook freebsd_committer freebsd_triage 2018-06-06 15:55:25 UTC
A commit references this bug:

Author: tobik
Date: Wed Jun  6 15:55:02 UTC 2018
New revision: 471856
URL: https://svnweb.freebsd.org/changeset/ports/471856

Log:
  New port: games/multimc

  MultiMC is a custom launcher for Minecraft that allows you to easily
  manage multiple installations of Minecraft at once.  It also allows
  you to easily install and remove mods by simply dragging and dropping.

  WWW: https://multimc.org

  PR:		224823
  Submitted by:	tsundoku <me@tsundoku.ne.jp> (based on)

Changes:
  head/games/Makefile
  head/games/multimc/
  head/games/multimc/Makefile
  head/games/multimc/distinfo
  head/games/multimc/files/
  head/games/multimc/files/patch-CMakeLists.txt
  head/games/multimc/files/patch-api_gui_DesktopServices.cpp
  head/games/multimc/files/patch-api_logic_FileSystem.cpp
  head/games/multimc/files/patch-api_logic_FileSystem__test.cpp
  head/games/multimc/files/patch-api_logic_java_JavaUtils.cpp
  head/games/multimc/files/patch-api_logic_minecraft_MinecraftInstance.cpp
  head/games/multimc/files/patch-api_logic_minecraft_OpSys.cpp
  head/games/multimc/files/patch-api_logic_minecraft_OpSys.h
  head/games/multimc/files/patch-api_logic_minecraft_launch_ExtractNatives.cpp
  head/games/multimc/files/patch-api_logic_minecraft_launch_PrintInstanceInfo.cpp
  head/games/multimc/files/patch-api_logic_minecraft_update_FMLLibrariesTask.h
  head/games/multimc/files/patch-application_CMakeLists.txt
  head/games/multimc/files/patch-application_MultiMC.cpp
  head/games/multimc/files/patch-application_UpdateController.cpp
  head/games/multimc/files/patch-application_install__prereqs.cmake.in
  head/games/multimc/files/patch-libraries_iconfix_internal_qiconloader.cpp
  head/games/multimc/files/patch-libraries_systeminfo_src_sys__unix.cpp
  head/games/multimc/pkg-descr
  head/games/multimc/pkg-plist
Comment 12 Tobias Kortkamp freebsd_committer freebsd_triage 2018-06-06 15:56:01 UTC
(In reply to tsundoku from comment #9)
Builds fine now.  Committed, thanks!