Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 580486 - games-rpg/runescape-launcher: the laucher for native game client for the free-to-play MMORPG
Summary: games-rpg/runescape-launcher: the laucher for native game client for the free...
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: Normal enhancement
Assignee: Jack Coulter
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-04-19 05:48 UTC by Jack Coulter
Modified: 2016-06-25 12:06 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
runescape-launcher-2.2.2.ebuild (runescape-launcher-2.2.2.ebuild,1.24 KB, text/plain)
2016-04-19 05:48 UTC, Jack Coulter
Details
License file (RuneScape-EULA,17.58 KB, text/plain)
2016-04-19 05:48 UTC, Jack Coulter
Details
RuneScape-EULA (RuneScape-EULA,17.58 KB, text/plain)
2016-04-19 05:49 UTC, Jack Coulter
Details
metadata.xml (metadata.xml,360 bytes, text/xml)
2016-04-19 05:49 UTC, Jack Coulter
Details
metadata.xml (metadata.xml,358 bytes, text/xml)
2016-04-19 05:50 UTC, Jack Coulter
Details
runescape-launcher-2.2.2.ebuild (runescape-launcher-2.2.2.ebuild,1.26 KB, text/plain)
2016-04-22 11:10 UTC, Jack Coulter
Details
metadata.xml (metadata.xml,358 bytes, text/xml)
2016-05-04 04:46 UTC, Jack Coulter
Details
metadata.xml (metadata.xml,256 bytes, text/xml)
2016-05-10 15:07 UTC, Jack Coulter
Details
runescape-launcher-2.2.2.ebuild (runescape-launcher-2.2.2.ebuild,1.24 KB, text/plain)
2016-05-10 15:10 UTC, Jack Coulter
Details
runescape-launcher-2.2.2.ebuild (runescape-launcher-2.2.2.ebuild,1.24 KB, text/plain)
2016-05-11 01:33 UTC, Jack Coulter
Details
runescape-launcher-2.2.2.ebuild (runescape-launcher-2.2.2.ebuild,1.44 KB, text/plain)
2016-05-13 06:53 UTC, Jack Coulter
Details
runescape-launcher-2.2.2.ebuild (runescape-launcher-2.2.2.ebuild,1.55 KB, text/plain)
2016-05-14 10:17 UTC, Jack Coulter
Details
runescape-launcher-2.2.2.ebuild (runescape-launcher-2.2.2.ebuild,1.58 KB, text/plain)
2016-05-20 09:10 UTC, Jack Coulter
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jack Coulter 2016-04-19 05:48:14 UTC
Created attachment 431184 [details]
runescape-launcher-2.2.2.ebuild

Hi,

Please find attached runescape-launcher-2.2.2.ebuild and it's related files (metadata.xml & license file).

This ebuild installs (from unpacked upstream .deb) the launcher for the recently released (18th April) native game client for the free-to-play MMORPG, RuneScape (http://www.runescape.com).

There's some minor mangling of the included .desktop file & launcher script in src_prepare, via sed, but otherwise a fairly straight forward and simple ebuild.

RDEPEND versions are as per the Packages.gz descriptor in the publisher's official apt repository. I've merged this ebuild locally and can confirm no runtime issues with default USE flags.

I did note one runtime issue, where the launcher will segfault after some period of time if net-libs/webkit-gtk has been merged with the non-default "jit" flag enabled. With this in mind, would it be appropriate to amend the RDEPEND line for webkit-gtk to include [-jit]?


Regards,
Jack
Comment 1 Jack Coulter 2016-04-19 05:48:39 UTC
Created attachment 431186 [details]
License file
Comment 2 Jack Coulter 2016-04-19 05:49:09 UTC
Created attachment 431188 [details]
RuneScape-EULA
Comment 3 Jack Coulter 2016-04-19 05:49:29 UTC
Created attachment 431190 [details]
metadata.xml
Comment 4 Jack Coulter 2016-04-19 05:50:37 UTC
Created attachment 431192 [details]
metadata.xml
Comment 5 Jack Coulter 2016-04-19 05:51:41 UTC
Also to note, this ebuild is only applicable to amd64 as the upstream binary is only provided for that arch.
Comment 6 Jack Coulter 2016-04-19 05:52:04 UTC
Also to note, this ebuild is only applicable to amd64 as the upstream binary is only provided for that arch.
Comment 7 Jack Coulter 2016-04-22 11:10:37 UTC
Created attachment 431534 [details]
runescape-launcher-2.2.2.ebuild

Added missing libpng dependency
Comment 8 Ian Delaney (RETIRED) gentoo-dev 2016-04-27 11:58:13 UTC
Is it presumed that you wish to proxy maintain this package. I do not recall coming across a request via the alias of the project.  The metadata for one needs an entry for the project itself. A user maintainer does not stand alone in a package's metadata.xml
Comment 9 Jack Coulter 2016-04-29 04:15:51 UTC
(In reply to Ian Delaney from comment #8)
> Is it presumed that you wish to proxy maintain this package. I do not recall
> coming across a request via the alias of the project.  The metadata for one
> needs an entry for the project itself. A user maintainer does not stand
> alone in a package's metadata.xml

I can maintain this package if desired. If the entry in metadata.xml is not correct / as per process, can you please direct me to the documentation for what I should include here? I've not submitted an ebuild before so I may not be entirely up to speed as to just what's expected.
Comment 10 Ian Delaney (RETIRED) gentoo-dev 2016-05-03 00:16:38 UTC
Yes sorry I ought to have added this in the first place.

https://wiki.gentoo.org/wiki/Project:Proxy_Maintainers

See the sample metadata.xml:
	<maintainer type="project">
		<email>proxy-maint@gentoo.org</email>
		<name>Proxy Maintainers</name>
	</maintainer>

will cover that.
At this point, in the metadata file, the kde use flag is not required since it exists as a global IUSE flag.
Also the license is probably not required. See the portage tree, there is a folder licenses.  There are already a number of licenses there that pertain to EULA and one of those is highly likely to match.

Feel free to join the irc channel #gentoo-proxy-maint for further sypport.

Thank you
Comment 11 Ian Delaney (RETIRED) gentoo-dev 2016-05-03 00:39:09 UTC
There are corrections required in the ebuild itself but let's start slowly and get those other elements set first, then the ebuild leading to addition to the tree
Comment 12 Jack Coulter 2016-05-04 04:46:50 UTC
Created attachment 433144 [details]
metadata.xml
Comment 13 Jack Coulter 2016-05-04 04:49:26 UTC
I've added the new metadata.xml as per the example one for proxy maintainers. I had a look through the license files in the main tree and believe this package specific one is still required, although most likely only the first section, as the latter sections are simply verbatim copies of the licenses of dependencies.


What changes are required in the ebuild itself?
Comment 14 Ian Delaney (RETIRED) gentoo-dev 2016-05-10 11:24:37 UTC
I think you re-added the old metadata.xml. It does not differ.

SRC_URI="
	amd64? (
		http://content.runescape.com/downloads/ubuntu/pool/non-free/r/runescape-launcher/runescape-launcher_${PV}_amd64.deb
	)
"To begin with, the line is a mile long. 
runescape-launcher is the PN so please substitute with ${PN}, twice.
Then we do not wish for a name with .deb, but I am uncertain about what to do with a .deb file.
Comment 16 Jack Coulter 2016-05-10 15:07:48 UTC
Created attachment 433836 [details]
metadata.xml

Correct metadata.xml
Comment 17 Jack Coulter 2016-05-10 15:10:27 UTC
Created attachment 433838 [details]
runescape-launcher-2.2.2.ebuild

Replace literal package name with ${PN} in src_uri.


I'm not sure what can be done with the .deb based src - while it's certainly technically possible to manually extract it and rehost the content as suggested by your link (if I am understanding it correctly), I don't believe redistribution of the deb's content would be legally permissible under the EULA.
Comment 18 Sven B. 2016-05-10 15:39:16 UTC
Since it is a binary -- perhaps install into /opt .
-> https://devmanual.gentoo.org/general-concepts/filesystem/
Comment 19 Sam Jorna (wraeth) (RETIRED) gentoo-dev 2016-05-11 00:32:19 UTC
(In reply to Jack Coulter from comment #17)
> I'm not sure what can be done with the .deb based src - while it's certainly
> technically possible to manually extract it and rehost the content as
> suggested by your link (if I am understanding it correctly), I don't believe
> redistribution of the deb's content would be legally permissible under the
> EULA.


There are a number of packages in the tree that use .deb sources - you can find them (to use as examples) with

> qgrep -H '.deb"'
Comment 20 Jack Coulter 2016-05-11 01:15:15 UTC
> There are a number of packages in the tree that use .deb sources - you can find them (to use as examples) with

Yep, I was mainly working off chrome-binary-plugins when putting together this ebuild, which also uses a .deb source and installs its files in the appropriate locations under /usr - not in /opt.

I can amend the ebuild to put the files from this .deb in opt instead of their current locations at the appropriate subtrees within /usr, but I imagine some files will still need to be installed in /usr - such as the .desktop files which, unless I'm mistaken, will not be found by the menu systems of various desktop environments unless they're in /usr/share/applications, and similar for the icon files also.
Comment 21 Jack Coulter 2016-05-11 01:20:29 UTC
Just to make sure I'm understanding things correctly, currently the complete list of files installed by this ebuild is as follows:

/usr
/usr/bin
/usr/bin/runescape-launcher
/usr/libexec
/usr/libexec/runescape
/usr/share
/usr/share/applications
/usr/share/applications/runescape-launcher.desktop
/usr/share/doc
/usr/share/doc/runescape-launcher-2.2.2
/usr/share/doc/runescape-launcher-2.2.2/changelog.bz2
/usr/share/doc/runescape-launcher-2.2.2/copyright.bz2
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/16x16
/usr/share/icons/hicolor/16x16/apps
/usr/share/icons/hicolor/16x16/apps/runescape.png
/usr/share/icons/hicolor/24x24
/usr/share/icons/hicolor/24x24/apps
/usr/share/icons/hicolor/24x24/apps/runescape.png
/usr/share/icons/hicolor/256x256
/usr/share/icons/hicolor/256x256/apps
/usr/share/icons/hicolor/256x256/apps/runescape.png
/usr/share/icons/hicolor/32x32
/usr/share/icons/hicolor/32x32/apps
/usr/share/icons/hicolor/32x32/apps/runescape.png
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/48x48/apps/runescape.png
/usr/share/icons/hicolor/512x512
/usr/share/icons/hicolor/512x512/apps
/usr/share/icons/hicolor/512x512/apps/runescape.png
/usr/share/icons/hicolor/64x64
/usr/share/icons/hicolor/64x64/apps
/usr/share/icons/hicolor/64x64/apps/runescape.png


If I understand both the page you linked (https://devmanual.gentoo.org/general-concepts/filesystem/) and the relevant freedesktop.org standards, the files that currently go into /usr/share should remain there. The main launcher script should go to /opt/bin, and the binary that's currently in libexec should go into /opt/${PN}. Is this correct?
Comment 22 Sam Jorna (wraeth) (RETIRED) gentoo-dev 2016-05-11 01:27:40 UTC
(In reply to Jack Coulter from comment #20)
> Yep, I was mainly working off chrome-binary-plugins when putting together
> this ebuild, which also uses a .deb source and installs its files in the
> appropriate locations under /usr - not in /opt.

Traditionally, binary applications are installed to the /opt tree rather than host-built binaries installed to /usr, but I'm not sure about the policy with games, and not familiar with this package myself.

> I can amend the ebuild to put the files from this .deb in opt instead of
> their current locations at the appropriate subtrees within /usr, but I
> imagine some files will still need to be installed in /usr - such as the
> .desktop files which, unless I'm mistaken, will not be found by the menu
> systems of various desktop environments unless they're in
> /usr/share/applications, and similar for the icon files also.

Yes, desktop files, icons, and, if relevant, configuration files that would normally go in /etc would still be installed to their normal location, it's the application files itself that would go into /opt (if the package needs to be installed there at all).
Comment 23 Jack Coulter 2016-05-11 01:33:36 UTC
Created attachment 433900 [details]
runescape-launcher-2.2.2.ebuild

I've changed the installation paths as discussed. The installed file list now looks like:

/opt
/opt/bin
/opt/bin/runescape-launcher
/opt/runescape-launcher
/opt/runescape-launcher/runescape
/usr
/usr/share
/usr/share/applications
/usr/share/applications/runescape-launcher.desktop
/usr/share/doc
/usr/share/doc/runescape-launcher-2.2.2
/usr/share/doc/runescape-launcher-2.2.2/changelog.bz2
/usr/share/doc/runescape-launcher-2.2.2/copyright.bz2
/usr/share/icons
/usr/share/icons/hicolor
/usr/share/icons/hicolor/16x16
/usr/share/icons/hicolor/16x16/apps
/usr/share/icons/hicolor/16x16/apps/runescape.png
/usr/share/icons/hicolor/24x24
/usr/share/icons/hicolor/24x24/apps
/usr/share/icons/hicolor/24x24/apps/runescape.png
/usr/share/icons/hicolor/256x256
/usr/share/icons/hicolor/256x256/apps
/usr/share/icons/hicolor/256x256/apps/runescape.png
/usr/share/icons/hicolor/32x32
/usr/share/icons/hicolor/32x32/apps
/usr/share/icons/hicolor/32x32/apps/runescape.png
/usr/share/icons/hicolor/48x48
/usr/share/icons/hicolor/48x48/apps
/usr/share/icons/hicolor/48x48/apps/runescape.png
/usr/share/icons/hicolor/512x512
/usr/share/icons/hicolor/512x512/apps
/usr/share/icons/hicolor/512x512/apps/runescape.png
/usr/share/icons/hicolor/64x64
/usr/share/icons/hicolor/64x64/apps
/usr/share/icons/hicolor/64x64/apps/runescape.png
Comment 24 Ian Delaney (RETIRED) gentoo-dev 2016-05-13 01:14:17 UTC
This being a specialised AND binary package, it is best to get final checks and ticks from the dev who work in them. aka gentoo-desktop. It has a channel. Take it from there.  While the package's ebuild looks fine from here, the cost of it not being quite as expected can be high.
Proxy maintainers project potentially covers the full scope of gnetoo, but it lacks a rep of every specialty.  Get en endorsement form one of those and we can add it.
Comment 25 Jack Coulter 2016-05-13 01:50:09 UTC
(In reply to Ian Delaney from comment #24)
> This being a specialised AND binary package, it is best to get final checks
> and ticks from the dev who work in them. aka gentoo-desktop. It has a
> channel. Take it from there.  While the package's ebuild looks fine from
> here, the cost of it not being quite as expected can be high.
> Proxy maintainers project potentially covers the full scope of gnetoo, but
> it lacks a rep of every specialty.  Get en endorsement form one of those and
> we can add it.

Thanks Ian, I will ask around on IRC as suggested.
Comment 26 Mart Raudsepp gentoo-dev 2016-05-13 04:13:07 UTC
If you install .desktop files in /usr/share/applications, you must run update-desktop-database as appropriate. You can use xdg.eclass phases for that; or xdg-utils.eclass provided helper functions if you provide your own phases. I think fdo-mime.eclass was doing this earlier, with xdg* being the new ones preferred now, but not 100% sure.

If you install icon files in /usr/share/icons, you should update gtk icon caches. gnome2-utils.eclass has helpers for this. Call gnome2_icon_savelist in pkg_preinst, and then gnome2_icon_cache_update in pkg_postinst and pkg_postrm. Various ebuilds in the tree do this as an example (many of them use old fdo-mime based update-desktop-database as well there, use xdg or xdg-utils instead there).
Comment 27 Mart Raudsepp gentoo-dev 2016-05-13 04:15:57 UTC
What for are you inheriting multilib?
Comment 28 Jack Coulter 2016-05-13 06:52:16 UTC
(In reply to Mart Raudsepp from comment #27)
> What for are you inheriting multilib?

I was originally working off the chrome-binary-plugins ebuild as an example. I've removed the redundant multilib inherit now
Comment 29 Jack Coulter 2016-05-13 06:53:14 UTC
Created attachment 434130 [details]
runescape-launcher-2.2.2.ebuild

Now inherits xdg and gnome2-utils and updates .desktop and icon caches on post{inst,rm}
Comment 30 Ian Delaney (RETIRED) gentoo-dev 2016-05-13 11:56:31 UTC
Thank you leio for assisting user here.
Comment 31 Jack Coulter 2016-05-14 10:17:04 UTC
Created attachment 434270 [details]
runescape-launcher-2.2.2.ebuild

Fix path .desktop file to match the new launcher script location in /opt/bin
Comment 32 Ulrich Müller gentoo-dev 2016-05-18 08:57:46 UTC
@Licenses team: AFAICS the license should be added to the @EULA group.

The download page at https://www.runescape.com/download says "By downloading this software you agree to our End User License Agreement." and when clicking the "Linux" button, a text field pops up with commands to install it from the console on Ubuntu ("apt-get install"). I wonder if we need fetch restriction, or if mirror restriction will be enough here?
Comment 33 Ian Delaney (RETIRED) gentoo-dev 2016-05-19 01:48:40 UTC
ulm where does this leave https://bugs.gentoo.org/attachment.cgi?id=431188
Comment 34 Ulrich Müller gentoo-dev 2016-05-19 09:29:19 UTC
(In reply to Ian Delaney from comment #33)
> ulm where does this leave https://bugs.gentoo.org/attachment.cgi?id=431188

We don't have this, so it would have to be added as a new license file.
Comment 35 Ian Delaney (RETIRED) gentoo-dev 2016-05-20 08:19:55 UTC
I don;t know if this came up before but the build install displays a QA notice, in red.

 * QA Notice: Files built without respecting CFLAGS have been detected
 *  Please include the following list of files in your report:
 * /opt/runescape-launcher/runescape

These in fact ware erroneous since it is a binary pre-built.

See  vars QA_FLAGS_IGNORED   QA_PREBUILT

/usr/lib/portage/pythonVersion/install-qa-check.d/10ignored-flags

You set assign the file listed ^^ as the value to the var.

Beyond that it should have reached all QA checks
Comment 36 Jack Coulter 2016-05-20 09:10:10 UTC
Created attachment 434764 [details]
runescape-launcher-2.2.2.ebuild

I've added the QA_FLAGS_IGNORED part, however I didn't get the message you were seeing on my system even without this change - Is there an extra FEATURE or something else that needs to be enabled to see such QA warnings?
Comment 37 Alexander Berntsen (RETIRED) gentoo-dev 2016-05-20 09:13:59 UTC
(In reply to Ulrich Müller from comment #32)
> @Licenses team: AFAICS the license should be added to the @EULA group.
> 
> The download page at https://www.runescape.com/download says "By downloading
> this software you agree to our End User License Agreement." and when
> clicking the "Linux" button, a text field pops up with commands to install
> it from the console on Ubuntu ("apt-get install"). I wonder if we need fetch
> restriction, or if mirror restriction will be enough here?

Sounds like mirror is enough. There's no "you must click this before downloading" type of clause.
Comment 38 Ian Delaney (RETIRED) gentoo-dev 2016-05-20 12:44:21 UTC
(In reply to Jack Coulter from comment #36)
> Created attachment 434764 [details]
> runescape-launcher-2.2.2.ebuild
> 
> I've added the QA_FLAGS_IGNORED part, however I didn't get the message you
> were seeing on my system even without this change - Is there an extra
> FEATURE or something else that needs to be enabled to see such QA warnings?

This comes with the latest portage repoman combo release only a couple of days ago.  You can also get this to be triggered by adding -frecord-gcc-switches to CFLAGS in make.conf the other *FLAGS are then assigned to the value of CLFAGS except for LDFLAGS.
Comment 39 Ian Delaney (RETIRED) gentoo-dev 2016-05-20 13:25:50 UTC
NO

QA_PREBUILT="/opt/runescape-launcher/runescape"
This says set the value of "/opt/runescape-launcher/runescape" to QA_PREBUILT
which then tells portage or emerge / ebuild.sh that this file ix exempt form this QA notice.

I shall put it in for you, take not for the future. This is the only element needed to go.  Also I mentioned I think to take out the amd64? ( )
With KEYWORDS="-* ~amd64" your only possible state is amd64 so I have take it out.


commit 48c915cd290f9aa32f7580373c0620744ec5abff
Author: Ian Delaney <idella4@gentoo.org>
Date:   Fri May 20 21:20:52 2016 +0800

    games-rpg/runescape-launcher: new ebuild, (binary) initial vn. 2.2.2
    
    To be maintained by user Jack Coulter under the Proxy Maintainers Project
    initial ebuild supplied as attachment via the gentoo bug.
    This package required a new license, added under the group 'EULA'
    
    Gentoo-bug: #580486
Comment 40 Jack Coulter 2016-05-20 14:53:15 UTC
(In reply to Ian Delaney from comment #39)
> NO
> 
> QA_PREBUILT="/opt/runescape-launcher/runescape"
> This says set the value of "/opt/runescape-launcher/runescape" to QA_PREBUILT
> which then tells portage or emerge / ebuild.sh that this file ix exempt form
> this QA notice.
> 
> I shall put it in for you, take not for the future. This is the only element
> needed to go. 

Ah, I see now, thank you for fixing that for me.

> Also I mentioned I think to take out the amd64? ( )
> With KEYWORDS="-* ~amd64" your only possible state is amd64 so I have take
> it out.

Right, I understand now - ~amd64 is the only possible keyword hence the conditional in SRC_URI is redundant.

Thank you for all your help & patience with this.
Comment 41 Daiajo Tibdixious 2016-06-25 12:06:55 UTC
I created my own version of this ebuild, and had to add a section to /opt/bin/runescape-launcher:

gcc_dir=`gcc-config --get-lib-path | cut --delimiter=":" --fields=1`
export LD_LIBRARY_PATH=/usr/lib64/opengl/ati/lib:/lib64:/usr/lib64:${gcc_dir}

Without adding a LD_LIBRARY_PATH I get seg faults. Note that I am using ati-drivers