-
-
Notifications
You must be signed in to change notification settings - Fork 448
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
Master branch doesn't build, dev docs are missing details #2217
Comments
👋 you should use develop branch. Second repository requires some patches to be built, but I'm sure you can figure out yourself. |
Develop branch doesn't build properly either
Will investigate the other deps you just listed, thanks! |
@FrayxRulez Second repository requires some patches to be built, But how to do? I am C#/React full-stack programmer, but poor C/C++. |
What's the status, could you guys made it to work? I learned syntax of the c# to improve my programming skills and may be some improvements to this program, but i couldn't build it either. |
@FrayxRulez can you please provide some guidance on how to patch tgcalls? The patched webrtc UWP repo has too many mismatches with tgcalls. |
You don't need to patch it, just use |
Still, apart from patching part build instructions are the same as the official one |
Unigram is a royal pain in the ass to build right now! |
Managed to build Unigram today.
See #2217 (comment) Getting started
If you want to build WinRTC (WebRTC for Windows) yourself, enabling x86 and arm64 builds as well
Building Unigram
namespace Unigram
{
public static partial class Constants
{
static Constants()
{
Constants.ApiId = <your api id>;
Constants.ApiHash = "<your api hash>";
Constants.AppChannel = "<the user handle @ of a channel you will create, this hosts emojis app update packages etc>";
Constants.AppCenterId = "<an optional appcenter id, from appcenter.ms, can be left blank>";
}
}
}
OptionalThe following is to make building quicker down the line:
And now, building the app
if everything goes well, you should end up here: Author note: this might be different from how the app is built by the developer, and might be missing a few things, but this is the general idea/notes I took while doing this, I might try doing a more detailed, completed, and checked step by step guide later on, but hopefully this already helps you. |
Holy shit! |
I have provided more details on how to build WebRTC here: https://gist.github.com/gus33000/7a7f310528082d5b7ba555fed6379e03 x86 UWP target still has some issue but x64 and arm64 are fine |
Wow @gus33000 thanks a lot. I'll add this to the Readme. I actually made a nuget package for the webrtc fork used by Unigram, for now just x64: Unigram.WebRTC.x64. |
Develop branch won't build because it's using a not yet public version of TDLib. |
You're welcome! Figured out the issue with x86 for WebRTC so it should be fine now. Hope it helps others willing to build the app. I'm just wondering if the tgcalls commit I picked is the right one given I had to do some tiny modifications too last night (going to try again today, but just wanting to be sure) |
@gus33000 you are our hero! |
TdLib finally updated so I think you should be able to build the latest source now. Haven't tested yet, but ignore the cherry picked commit hash for unigram only (keep cherry picking tgcalls commit hash). |
@gus33000 can you make a PR adding the build instructions to the docs? |
I think you should consider improving the build situation before documenting this. Opening up project files, commenting lines out, and manually creating sources is ridiculous. 🤡 |
I don't care about other people being able to build the project. Code-related PRs are not welcome. |
Then why would anyone care to submit a PR? You are terrible. |
Additionally, I'm not sure that it's my fault if UWP environment sucks and you can't find common libraries such as WebRTC ready to be built or even pre-built? |
I'm not sure if asking for things to be improved and then using clown emojis to make fun of someone's work is a good idea to get what you want. |
What work though? There's no work done by anyone currently on build documentation, and I do agree with @riverar that there should be ways to make it better (for a start, the c:\tgcalls folder being hardcoded is in unigram project, not in a dependency). Same for WebRTC. Also how do we know things didn't change again? |
The clown emoji is disrespectful towards the entire project, not just missing build instructions.
And I agree that build instructions would be cool, but using clown emojis and pretending them is wrong.
If they change, the documentation can be updated. |
My message made no reference to the clown emojis, and I do not intend to comment on this issue, as it is irrelevant to our goals. You're free to discuss this with the concerned parties, but I'm not, and to me it looks like you just want to fuel fire here. It's just an unicode character. I was requested to make a PR to provide build instructions, something I would happily do, but this would take me an entire weekend to recheck that everything works the way it already did, and making build instructions requiring to modify system files is ridiculous just to adapt to hardcoded paths that are once again present in the unigram repository itself, and none of the dependencies. Making build instructions involving what is commonly called hacks is not adequate, and would not match the project quality that everyone expects here. I'm the one that made above's instructions in the first place, I have not said I would not do them, but I would kindly request that the hardcoded paths get resolved so we can make a pull request with the quality you expect from such a large scale project. |
Moreover, speaking of build instructions, it is a violation of the GPLv3 license to not make the project rebuildable by people. |
@gus33000 Modify system files? 🤨 |
The GPLv3 license requires people to be able to rebuild the project and obtain identical binaries, we cannot be sure at this stage that the binaries we build ourselves match the binaries you build yourself, and that's a big problem |
@gus33000 Report me to the authorities then |
Not question of that, I do want to help by providing instructions to fix that issue, but I would love it if you could help us by just removing the hardcoded paths and making them relative to the project root... |
@gus33000 Is it really needed? The problem with tgcalls is that the repository is private so I can’t add it as a submodule. |
Yes, because TGCalls is LGPL3, which requires to disclose source as well... https://github.com/TelegramMessenger/tgcalls/blob/master/LICENSE |
Thanks a lot for the submodule <3 Will try to do a PR tomorrow |
I tried building Unigram numerous times since my previous comment unfortunately the Unigram.Native project now depends on libraries that are not referenced in the repository as submodules, and seems to depend on a vcpkg configuration missing from my machine. I appreciate all submobules for various libraries being here but some libraries like zlib or ffmpeg are completely missing from the tree and simply adding them in folders under the library directory isn't enough to make the build succeed. Is there any tip/guidance/help that could be given here? Note: my list is non exhaustive there's more missing. I should also note a lottie animation cs file is entirely missing from the main app UWP project. |
Attempting to build Unigram master, with TDLib 1.7.0, results in a litany of errors. There appear to be a bunch of references to a hardcoded path
C:\tgcalls
, as well as others. None of these folders are listed in the dev docs.Do you have updated guidance on building Unigram?
The text was updated successfully, but these errors were encountered: