Warning: file_exists(): open_basedir restriction in effect. File(/srv/http/vhosts/aur.archlinux.org/public/web/locale//en/LC_MESSAGES/aurweb.mo) is not within the allowed path(s): (/srv/http/vhosts/aur-dev.archlinux.org/:/etc/aurweb/) in /srv/http/vhosts/aur-dev.archlinux.org/public/web/lib/streams.php on line 90
AUR (en) - playonlinux5-git

Notice: Undefined variable: name in /srv/http/vhosts/aur-dev.archlinux.org/public/web/lib/pkgfuncs.inc.php on line 248

Package Details: playonlinux5-git 2:r1500.18b43a68-1

Git Clone URL: https://aur-dev.archlinux.org/playonlinux5-git.git (read-only)
Package Base: playonlinux5-git
Description: GUI for managing Windows programs under linux (development version based on Java)
Upstream URL: http://www.playonlinux.com/
Keywords: playonlinux playonlinux5 pol pol5 wine
Licenses: GPL
Submitter: captain
Maintainer: ProfessorKaos64
Last Packager: ProfessorKaos64
Votes: 7
Popularity: 2.987348
First Submitted: 2015-11-13 11:07
Last Updated: 2017-01-19 01:40

Pinned Comments

ProfessorKaos64 commented on 2016-11-18 16:16

Latest dev news:
https://www.playonlinux.com/en/news.html

Note:
PlayOnLinux.sh was modified and includes a path to Java 8, allowing non-destructive running of PlayOnLinux5 with default Java not set to Java 8. See: https://wiki.archlinux.org/index.php/java for more. There is not need to force users to set default Java to Java 8 at this time.

There is a Qt version being developed, but it is far from test-ready.

Latest Comments

1 2 3 4 5 Next › Last »

SolarAquarion commented on 2017-01-21 14:14

@professorKaos64 set lib/ to chmod 644 or it doesn't load slf4j and other needed api's

Det commented on 2017-01-19 15:10

That's my point..

Whatever your coding style is, please make it _consistent_.

ProfessorKaos64 commented on 2017-01-19 01:25

White space is preference of code style (same as I prefer a new line after and before brackets {}, I consider it readability than squished code. I will take a look and compact some. I will correct the comment as well so it is correct.

Det commented on 2017-01-17 15:24

The new lines and white space are still sort of out of control, otherwise no (functional) complaints.

Also, "Take the highest sorted version of either (head -1) so that versions above 8 will be selected" is not true or at least confusing. Head is the head (first alphanumerically). Tail is the last. The whole comment line is also weirdly separated from the previous one. "# Set environment" also shouldn't follow with a duplicate line "# Set JAVA_HOME [...]".

Det commented on 2017-01-16 16:46

archlinux-java *does* show it? "java-8-openjdk/jre" _is_ JRE. https://aur.archlinux.org/packages/jre/ is also JRE (uses /usr/lib/jvm/java-8-jre/ instead of /usr/lib/jvm/java-8-jdk/).

Oracle JDK 9 is https://aur.archlinux.org/packages/jdk-devel/. Seems to do fine, since there's still as of yet no OpenJDK alternative.

I guess you could do something like:

# Make sure we use JDK 8 or higher
if (( $(archlinux-java get | cut -d "-" -f2) < 8 )) || [[ ! -f /usr/bin/javac ]]; then
 # Prefer OpenJDK
 _openjdks=($(ls /usr/lib/jvm/java-{8,9}-openjdk/bin/javac 2>/dev/null | cut -d "/" -f-5))
 if [[ $_openjdks ]]; then
  # Pick first one available
  export JAVA_HOME=${_openjdks[0]}
 else
  # Fall back to other JDKs
  export JAVA_HOME=$(ls /usr/lib/jvm/java-{8,9}-*/bin/javac 2>/dev/null | cut -d "/" -f-5 | head -1)
 fi
fi

I'm not sure it works.

ProfessorKaos64 commented on 2017-01-16 16:41

Det, I have jre installed, can you note which package to install so archlinux-java shows it? I then can account for that. I am very appreciative for your help regardless. For JDK 9, I do not see that in the AUR, am I missing that? Or do you have a link to an install?

https://wiki.archlinux.org/index.php/java#List_compatible_Java_environments_installed

Det commented on 2017-01-16 16:37

I forgot about the PATH thing, but it's just that easy to convert it to JAVA_HOME. Also, it was too early in the morning for doing the [[ ! $openjdk ]] so good thing you caught it. :D

But again, even if you prefer OpenJDK when none is set, your current implementation doesn't work for JRE or JDK 9. Also, that if statement example, as mentioned, was of your previous version, which didn't do at all what you were talking about.

By the way, "..." or "pretty basic Bash" is not "passive aggressive". :D

ProfessorKaos64 commented on 2017-01-16 14:39

I'm quite aware how if statements work. 95% of my GitHub repos are bash shell. I am not fighting your syntax. if your environment is >=8, the statements do nothing and the build uses your default set.

> You could use my aforementioned 3 lines, and it would work in all cases.

Except when I have openjdk and oracle jdk both installed. PATH does *NOT* work. As much as you are telling me to change this and that, did you test the build with those 3 lines? I am not forcing users to the jdk AUR package if they have both installed (which I know you maintain). If they remove openjdk, it will select oracle jdk. Otherwise, anyone is free to set their default java env what they want. If they do so, that condition is harmless, and the build will use whatever default >=8 they have. Your code only takes the leading line ...

ls /usr/lib/jvm/java-{8,9}-*/bin/javac 2>/dev/null | cut -d "/" -f-5
/usr/lib/jvm/java-8-jdk
/usr/lib/jvm/java-8-openjdk

... which is jdk (due to alphabetization). This completely negates those who want to use openjdk. There isn't a 100% happy medium here, and i'm tiring of arguing it. openjdk is preferred, it's in the official repositories. That is my decision.

> [[ "${openjdk}" != "" ]] you can do [[ ! $openjdk ]] (

If you are going to lecture me about bash, that is not correct. [[ "${openjdk}" != "" ]] is NOT the same as [[ ! $openjdk ]]. The first is checking string contents, the second checks if the string is actually assigned. If you were to use ! $openjdk, the statement would fail, (which I tested it..). [[ $openjdk ]] is appropriate in the condition I have (which I did test for, before you ask). I don't even have to put that logic in there, it's there as a courtesy. I could have easily noted you must have jdk >= 8.

I will clean up the consistency of the var's, that is my fault. The passive aggressive "..." 's , "pretty basic [this]" and such, are not warranted. I know my way around bash, and yes, I make mistakes, which I appreciate corrections for, such as the consistent var syntax.

Det commented on 2017-01-16 02:55

You don't seem to understand how an if statement works.

if (( $(archlinux-java get | cut -d "-" -f2) < 8 )); then
 do something
else
 do fallback
fi

..means, that whenever the statement (( $(archlinux-java get | cut -d "-" -f2) < 8 )) is true, you do the "something". Otherwise, in *all* cases, you do the fallback (what happens with OpenJDK 8 in there?). I didn't understand your custom explanation, but this is how it works (or did not, in your previous implementation. Now you don't have an else part, so it seems that you get it, but it doesn't match your wrong explanation at all).

Also, like I said, this still doesn't work if you have JDK>=8, but your default is *JRE*>=8, or if you only have JDK 9. This would be pretty straightforward, if all we had was OpenJDK 8 and Oracle JDK 8 which you recently started hard-coding in your statements.

And you don't need an overly complicated export mess (that doesn't work). You could use my aforementioned 3 lines, and it would work in all cases.

p.s. in Bash, instead of [[ "${openjdk}" != "" ]] you can do [[ ! $openjdk ]] (you don't need quotes in Bash's extended tests). And please use a consistent coding/scripting style. Try not to use ${var} and $var mixed up when there's no underscore (_) that you need to avoid. Either convert all to ${var} or all to $var. Same with your empty line rules and your indentations. Remember to replace my " " characters. They are only so that you get intents in the comments, but mess up the PKGBUILD.

p.p.s. "I can't put some wild condition in here". Are you saying you don't understand what [[ ! -f /usr/bin/javac ]] means? That's... pretty basic Bash.

ProfessorKaos64 commented on 2017-01-15 21:16

archlinux-java get can report anything > 8 (jdk/openjdk). If you already have anything >= 8, then with the change I just added, then nothing is touched. If more than 8, just keep going. There is no else to force it. I can't put some wild condition in here. If you are using Orace JDK >=8 it is fine, if <8, and you do not have openjdk, it will pick up your Oracle JDK. If you have both* Oracle JDK and OpenJDK < 8, then Idk what I can do for you. I can't please everyone's preferences. If you want to make an Oracle JDK version only of this, then ok.

if [[ $(archlinux-java get | cut -d "-" -f2) < 8 ]]; then

# test for openjdk, fall back on oracle jdk if not present
openjdk=$(ls /usr/lib/jvm/java-8-*/bin/javac 2>/dev/null | cut -d "/" -f-5 | awk '/-8-openjdk/')
oraclejdk=$(ls /usr/lib/jvm/java-8-*/bin/javac 2>/dev/null | cut -d "/" -f-5 | awk '/-8-jdk/')

if [[ "${openjdk}" != "" ]]; then
export JAVA_HOME=$(ls /usr/lib/jvm/java-8-*/bin/javac 2>/dev/null | cut -d "/" -f-5 | awk '/-openjdk/')
elif [[ "${oraclejdk}" != "" ]]; then
export JAVA_HOME=$(ls /usr/lib/jvm/java-8-*/bin/javac 2>/dev/null | cut -d "/" -f-5 | awk '/-jdk/')
fi

fi