Re: building RPMs locally

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Brad,
Thanks for the help!
but now i ran into this issue: https://tracker.ceph.com/issues/48078 as cmake is now failing with:
"
CMake Error at cmake/modules/CephChecks.cmake:140 (message):
  Unaligned access is required
"
in the ticket you mention that this is not happening with "in tree" rpmbuild. How do I perform that?

Yuval

On Tue, Nov 3, 2020 at 2:45 AM Brad Hubbard <bhubbard@xxxxxxxxxx> wrote:
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

[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux