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

Facelift of the ubuntu build instructions #348

Open
wants to merge 9 commits into
base: master
Choose a base branch
from

Conversation

jnweiger
Copy link
Contributor

Still does not build for me, it consistelntly explodes with

/usr/bin/ld: CMakeFiles/owncloudResources.dir/loadresources.cpp.o: in function `load_rc()':
loadresources.cpp:(.text+0x9): undefined reference to `qInitResources_owncloudResources_translations()'

I am missing some resource files??

Still does not build for me, it consistelntly explodes with
```
/usr/bin/ld: CMakeFiles/owncloudResources.dir/loadresources.cpp.o: in function `load_rc()':
loadresources.cpp:(.text+0x9): undefined reference to `qInitResources_owncloudResources_translations()'
```
I am missing some resource files??
Co-authored-by: Phil Davis <phil@jankaritech.com>
modules/ROOT/pages/appendices/building.adoc Outdated Show resolved Hide resolved
modules/ROOT/pages/appendices/building.adoc Outdated Show resolved Hide resolved
modules/ROOT/pages/appendices/building.adoc Outdated Show resolved Hide resolved
modules/ROOT/pages/appendices/building.adoc Show resolved Hide resolved
jnweiger and others added 4 commits February 13, 2023 16:18
thanks

Co-authored-by: Fabian Müller <80399010+fmoc@users.noreply.github.com>
remove git:// protocol replace by https:// as suggested by @fmoc
do not name examples of branches and tags, mention git checkout as suggested by @fmoc
@jnweiger
Copy link
Contributor Author

jnweiger commented Feb 14, 2023

I also need
sudo apt install qttools5-dev
to get past the initial build error in loadresources.cpp

Now the build on UBuntu 20.04 continues a bit further and fails at

[ 13%] Building CXX object src/libsync/libregraphapisrc-build/client/CMakeFiles/client.dir/OAIClass_Member_Reference.cpp.o
In file included from /tmp/cl/client/client-build/src/libsync/libregraphapisrc-src/client/OAIClass_Member_Reference.cpp:16:
/tmp/cl/client/client-build/src/libsync/libregraphapisrc-src/client/OAIClass_Member_Reference.h:60:54: error: field ‘d_ptr’ has incomplete type ‘QSharedPointer<OpenAPI::OAIClass_Member_ReferencePrivate>’
   60 |     QSharedPointer<OAIClass_Member_ReferencePrivate> d_ptr;
      |                                                      ^~~~~
In file included from /usr/include/x86_64-linux-gnu/qt5/QtCore/QMetaType:1,
                 from /tmp/cl/client/client-build/src/libsync/libregraphapisrc-src/client/OAIEnum.h:20,
                 from /tmp/cl/client/client-build/src/libsync/libregraphapisrc-src/client/OAIClass_Member_Reference.h:29,
                 from /tmp/cl/client/client-build/src/libsync/libregraphapisrc-src/client/OAIClass_Member_Reference.cpp:16:
/usr/include/x86_64-linux-gnu/qt5/QtCore/qmetatype.h:1377:1: note: declaration of ‘class QSharedPointer<OpenAPI::OAIClass_Member_ReferencePrivate>’
 1377 | QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER(QT_FORWARD_DECLARE_SHARED_POINTER_TYPES_ITER)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/tmp/cl/client/client-build/src/libsync/libregraphapisrc-src/client/OAIClass_Member_Reference.cpp: In copy constructor ‘OpenAPI::OAIClass_Member_Reference::OAIClass_Member_Reference(const OpenAPI::OAIClass_Member_Reference&)’:
/tmp/cl/client/client-build/src/libsync/libregraphapisrc-src/client/OAIClass_Member_Reference.cpp:40:1: warning: base class ‘class OpenAPI::OAIObject’ should be explicitly initialized in the copy constructor [-Wextra]
   40 | OAIClass_Member_Reference::OAIClass_Member_Reference(const OAIClass_Member_Reference& other)
      | ^~~~~~~~~~~~~~~~~~~~~~~~~
make[2]: *** [src/libsync/libregraphapisrc-build/client/CMakeFiles/client.dir/build.make:79: src/libsync/libregraphapisrc-build/client/CMakeFiles/client.dir/OAIClass_Member_Reference.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1733: src/libsync/libregraphapisrc-build/client/CMakeFiles/client.dir/all] Error 2
make: *** [Makefile:141: all] Error 2

The build on ubuntu 22.10 now succeeds!

@jnweiger jnweiger requested a review from fmoc February 16, 2023 12:09
@mmattel
Copy link
Contributor

mmattel commented Feb 16, 2023

@fmoc I would like to get a statement if the content is now ok (approval) or not, pls add commits to fix it

Copy link
Contributor

@fmoc fmoc left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm tempted to say "let's rewrite this page to use only system Qt packages". Our packaging is not designed to be reused by people who wish to build the client on legacy systems. I don't see lots of use cases in which users could either not upgrade their system but need to build the client themselves, really.

@TheOneRing do you think we should just dump this guide and tell people to use craft?

@@ -314,14 +315,16 @@ cd client-build
+
[source,console]
----
cmake -DCMAKE_PREFIX_PATH=/opt/ownCloud/qt-5.12.4 -DCMAKE_INSTALL_PREFIX=/Users/path/to/client/../install/ ..
cmake -DCMAKE_PREFIX_PATH=/opt/ownCloud/qt-5.15.2 -DCMAKE_INSTALL_PREFIX=/usr/ ..
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This hack doesn't quite cut it, apparently, since @jnweiger mentioned he needs to install qttools5-dev. Mixing system Qt packages with a custom built Qt doesn't work reliably.

I'm not sure which of our packages ships these dev tools (or if we do at all). All of this is legacy technology. We shouldn't recommend users to build any of our software with our special Qt packages. We do not maintain them for public use.

@TheOneRing
Copy link
Contributor

I'm tempted to say "let's rewrite this page to use only system Qt packages". Our packaging is not designed to be reused by people who wish to build the client on legacy systems. I don't see lots of use cases in which users could either not upgrade their system but need to build the client themselves, really.

@TheOneRing do you think we should just dump this guide and tell people to use craft?

Builds done with craft don't integrate with the system.
However I think if someone is advanced enough to consider building the package them selves, they won't require a guide.
And if they are not advanced enough... no guide on earth will be sufficient....

@fmoc
Copy link
Contributor

fmoc commented Feb 23, 2023

Then let's tell users to use their system Qt or update. Using these OBS-built packages is such a horrible idea, after all...

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

Successfully merging this pull request may close these issues.

5 participants