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

Linux: Add DISABLE_BUILD_DATE and misc fixes #682

Merged
merged 5 commits into from Jul 29, 2015

Conversation

micove
Copy link
Contributor

@micove micove commented Jul 28, 2015

Hello,

Debian is trying to make all their package reproducible as long as the build
enviroment is the same. The package is currently escaping their detection
because they are only testing the amd64 packages and pcsx2 is only i386.

To fix this I did commit 1 since this was done before but only for openSUSE. I
added an option as to make it generic and not distro specific. THe openSUSE
macro is no longer used so I removed it.

To verify this was all that was needed I compiled the package once, ran
sudo timedatectl set-time "2016-05-26 11:13:54" and then compiled it again. I
got the same md5sum for all files in both runs.

As an extra I included other minor changes:
Commit 2 Use set -e in the body of the script. I pasted the lintian explanation.

Commit 3 Add authors comment that suggest public-domain license. I had missed
that line before and tried to check sourceforge and it was down for more than a
week. I just added the author comments in case sourceforge dies for real. Since
there are no copyright headers for the 7-8 glsl files I'm not sure if that old
comment still applies so I added it for safety.

Commit 4-5 Only search for dependencies that are needed. I tested this on a
clean chroot without those 6 packages and it compiled fine.

@gregory38 Three questions

  1. Is PCSX2-linux.sh needed for PACKAGE_MODE? It gets installed in PACKAGE_MODE
    but looks like it's mainly needed when you build with build.sh. The line about
    __GL_THREADED_OPTIMIZATIONS is the only thing really needed I guess. The rest
    should be handled corretnly by the distribution unless you used build.sh and
    shared the output as a zip or something.
  2. Lilypad included now as a plugin by default. Lilypad.cpp does
#include "resource.h"

That file is typically used by the resource compiler in windows and not needed
in linux so I usually delete it therefore it fails to build. If I do

#ifdef _WIN32
#include "resource.h"
#endif

Then it says undefined declaration (well they are in resource.h after all) about
the ID_* declarations:

                    // GH2 hack.
                    else if (config.GH2) {
                        const unsigned int oldIdList[5] = {ID_R2, ID_CIRCLE, ID_TRIANGLE, ID_CROSS, ID_SQUARE};
                        const unsigned int idList[5] = {ID_L2, ID_L1, ID_R1, ID_R2, ID_CROSS};

All the other ID__, IDC__ things are under #ifdef _WIN32 except the Guitar Hero
2 hack. If compiles fine if I #ifdef it out.

My question is, does the GH2 hack code work under linux as is? Can't really test
it since I don't have the game or the controller. Since the other ID_* IDC_*
under #ifdef it might not work.

  1. It could be nothing but I got a
dpkg-shlibdeps: warning: debian/pcsx2/usr/lib/i386-linux-gnu/pcsx2/libLilyPad-0.11.0.so contains an unresolvable reference to symbol _ZN8wxThreadD2Ev: it's probably a plugin
dpkg-shlibdeps: warning: debian/pcsx2/usr/lib/i386-linux-gnu/pcsx2/libLilyPad-0.11.0.so contains an unresolvable reference to symbol _ZN8wxString13DoFormatWcharEPKwz: it's probably a plugin

It may need linking to wx3.0 but I have not really looked at it since I just noticed.

Debian has a goal to make reproducible builds therefore make it an
option instead of distro specific.
.
I added an "OR openSusE" to not "break" the old openSUSE behavior but ideally
they should just use -DDISABLE_BUILD_DATE=TRUE instead.
.
The old -DopenSUSE is not used for anything else so I removed it.
The script passes -e to the shell on the #! line rather than using set -e in
the body of the script. This is fine for normal operation, but if the script
is run by hand with sh /path/to/script (common in debugging), -e will not be
in effect. It's therefore better to use set -e in the body of the script.
Sourceforge was dead for more than a week therefore add the license
information. I could not find the original TGM source (dead link) so I'm not
even sure if this still applies or if the glsl was totally rewritten. None
of the glsl files have a copyright header so it's hard to tell.
Helpful for dropping dependencies package dependencies.
- Git only needed if there is a .git folder
- bzip2 only needed by CDVDiso
- CG/GLEW was for zerogs and ZZogl
- jpeg was for ZZogl
.
I also added that EGL_API is also for GSdx in option comment.
@gregory38
Copy link
Contributor

1/ Normally it is useless if the env is properly set in the desktop file (I never tested if it is working as expected)

2/ Honestly Lilypad was partially ported. Maybe you can drop the plugin. Otherwise yes it seems I directly reuse the value from windows file. An ID_* enum will do the job.

3/ Maybe I forget to link it againt common lib. Otherwise likely unimportant.

One question for you ;)
What is your timeline/deadline to take a new version for Debian/Ubuntu?

@gregory38
Copy link
Contributor

Oh I forgot for the glsl file.
FXAA is public domain (nvidia guy).
Most of convert/interlace/merge are trivial so it is public domain. Half of the convert file was done by me.
tfx_* were done by me and Gabest. Don't remember I think Gabest only did the fx file that I ported for glsl.
The (very big) external shader was done by Asmodean.
So the good news is that everything is free. However, it misses some nice headers.

@micove
Copy link
Contributor Author

micove commented Jul 28, 2015

What is your timeline/deadline to take a new version for Debian/Ubuntu?

For Ubuntu, the DebianImportFreeze is August-20
https://wiki.ubuntu.com/WilyWerewolf/ReleaseSchedule
After that date you have to request it but I'm not sure how that works.

For Debian, stretch should not hit a freeze for ~18 months since jessie just released.

I have to figure out what to do about the PCSX2_linux.sh (maybe add an option to not install it or just install it) and figure out if the Lilypad code works or just disable the plugin for now. The rest is done (adding png++,lzma, etc). Well, I also need to pick a commit but that is the last step.

Edit: Oh I just noticed that you said my deadline. Well, I was hoping to have upload rights by now but the process is long so I need someone else to upload the package. Having something done by the 15th should give me enough buffer for it to make it to Ubuntu. If the sponsor I use is busy or on vacation or something it will probably miss the deadline.

@gregory38
Copy link
Contributor

Lilypad is barely working. I only tested it quickly but without any GUI it is too painful to configure. I was close to put it in the extra section. I has kept it in main section to attract some contributions. (initial plan didn't include a complete revamp of GSdx...)

Here my status of pending dev. The 2 first item would be nice to have.
1/ Onepad fix for DS3. I hope to merge it soon.
2/ Improvement of SW blending (with an easier GSdx gui). It requires some testing but I think I will merge it soon.
3/ Some new algorithms to accelerate SW blending. Code isn't ready. I will try to finish it for the 7th.

gregory38 added a commit that referenced this pull request Jul 29, 2015
Linux: Add DISABLE_BUILD_DATE and misc fixes
@gregory38 gregory38 merged commit 5c58bd2 into PCSX2:master Jul 29, 2015
@micove
Copy link
Contributor Author

micove commented Jul 29, 2015

Thanks for the info and merge.

I will probably patch the CMake file (only in Debian) to disable LilyPad for now. I will probably disable the sh file too.

@micove micove deleted the Add_disable-build-date branch July 30, 2015 02:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants