On Tue, Nov 3, 2020 at 2:20 AM Yuval Lifshitz <ylifshit@xxxxxxxxxx> wrote: > > Dear Community, Hi Yuval, > As part of the work to add AWS endpoints to RGW bucket notifications [1], I'm trying to figure out how to package the AWS libraries that we generate in the submodule. > > So, my first step is to try and see how packaging works regardless of the AWS PR (just on master). I'm trying to follow the instructions from our docs [2], but these instructions seem to indicate that the code tarball needs to be downloaded from our official location (although the instructions also ask to clone ceph locally). Instead I used the "make-dist" script to generate the tarball locally, and continued with the instructions using that tarball instead of the downloaded one. > > This worked to some point, but I started receiving 2 kinds of issues: > One (seems like a warning): > " > /usr/bin/gdb.minimal: warning: Could not complete Guile gdb module initialization from: /usr/share/gdb/guile/gdb/boot.scm. If it's complaining about not being able to find /usr/share/gdb/guile/gdb/boot.scm (as in the BZ) you could try installing gdb-headlessbut it looks like a bit of a harmless warning AFAICT. > " > Probably related to this BZ [3], but could not figure out what to do to solve it > > The other is an error with rpath causign the process to fail: > " > ERROR 0002: file '/app/lib64/ceph/libceph-common.so.2' contains an invalid rpath '/app/lib64/ceph' in [/app/lib64/ceph] > ERROR 0002: file '/app/lib64/ceph/librbd/libceph_librbd_parent_cache.so.1.0.0' contains an invalid rpath '/app/lib64/ceph' in [/app/lib64/ceph] > ERROR 0002: file '/app/lib64/libcephfs.so.2.0.0' contains an invalid rpath '/app/lib64/ceph' in [/app/lib64/ceph] > ... > " > > Would appreciate any advice on that. This is due to the following. $ rpm --eval "%{_prefix}" /app $ rpm --showrc | grep "^Macro path:" Macro path: /usr/lib/rpm/macros:/usr/lib/rpm/macros.d/macros.*:/usr/lib/rpm/platform/%{_target}/macros:/usr/lib/rpm/fileattrs/*.attr:/usr/lib/rpm/redhat/macros:/etc/rpm/macros.*:/etc/rpm/macros:/etc/rpm/%{_target}/macros:~/.rpmmacros $ ag "%_prefix.*app" /usr/lib/rpm/ /etc/rpm/ /etc/rpm/macros.flatpak 2:%_prefix /app $ rpm -qf /etc/rpm/macros.flatpak flatpak-rpm-macros-32-2.fc32.x86_64 So you could uninstall flatpak-rpm-macros or you can add the following line to ~/.rpmmacros to override the definition. %_prefix /usr The way I normally create rpms is by running the following. $ rpmdev-wipetree $ ./make-srpm.sh $ rpm -ivh ceph-15.0.0-19449.g161b7e118b4.fc32.src.rpm $ rpmbuild -ba ~/working/rpmbuild/SPECS/ceph.spec There are other options available as well such as using mock profiles [0] to build the srpm and/or uploading to copr [1] or similar to allow the rpms to be built there. Of course you could also do these builds in containers. Let me know if I can be of any further help. [0] https://fedoraproject.org/wiki/Using_Mock_to_test_package_builds [1] https://copr.fedorainfracloud.org/coprs/badone/ > > Yuval > > [1] https://github.com/ceph/ceph/pull/36062 > [2] https://docs.ceph.com/en/latest/install/build-ceph/?highlight=rpmbuild#rpm-package-manager > [3] https://bugzilla.redhat.com/show_bug.cgi?id=1801144 > _______________________________________________ > Dev mailing list -- dev@xxxxxxx > To unsubscribe send an email to dev-leave@xxxxxxx -- Cheers, Brad _______________________________________________ Dev mailing list -- dev@xxxxxxx To unsubscribe send an email to dev-leave@xxxxxxx