stellar-core icon indicating copy to clipboard operation
stellar-core copied to clipboard

Write spec file to produce Fedora/RHEL/CentOS RPMS Version: all

Open philipmather opened this issue 5 years ago • 4 comments

Description

  • [ ] Produce basic spec file to build stellar-core for Fedora/RHEL/CentOS
    • [x] Target Fedora
    • [x] Target CentOS 7
    • [ ] Target RHEL (blocked by deps ATM)
  • [ ] Automate into Copr (mostly complete)
  • [ ] Produce doco for forks wishing to achieve same (part complete)

Initial version, split into two where "stellar-core-unstable" skips make check stage and sources from master, veruses "stellar-core" (stable) executing make check.

In addition...

  • [ ] Trigger stable by release and unstable by push (both on push ATM)
  • [ ] Obviate GNU Parallel dependency as not readily available in Fedora/CentOS and unlikely to ever be provided in Red Hat due to historic naming conflict. Use less pretty xargs.
  • [ ] Obviate pandoc dependency as whilst doco is important it pulls in requirement for entire Haskell stack which whilst available for Fedora/CentOS is unlikely to ever be avaialable for RHEL.
  • [ ] Investigate RHEL UBI

Checklist

  • [ ] Reviewed the contributing document
  • [ ] Rebased on top of master (no merge commits)
  • [ ] Ran clang-format v5.0.0 (via make format or the Visual Studio extension)
  • [x] Compiles
  • [x] Ran all tests
  • [ ] ~~If change impacts performance, include supporting evidence per the performance document~~

philipmather avatar Sep 07 '19 14:09 philipmather

Cool. @philipmather Have you looked at https://github.com/stellar/packages ? This may be a better place to track this kind of work as it’s dist related

MonsieurNicolas avatar Sep 07 '19 19:09 MonsieurNicolas

No, that's a bit buried to be frank, I plumbed through a couple of layers of doco before diving in without finding any mention of it.

I can understand splitting out stuff into separate repos so you don't have to grant everyone access to the actual code, let alone randoms from the Internet but it either needs a one line pointer in the doco or if it makes some sort of sense sub-moduling this "packages" repo into those it builds perhaps? Not sure.

I've not really seen a model/practice for building code from one repository from configuration in another but I can see a way it might work (doesn't depend on the sub-module bit) although I'm unsure how the autosetup RPM macro will handle multiple source git repos.

I can also see some unrelated monitoring and util bits in the "packages" repo from Mr. Nykis, is there any diagram or outline of the repo structure within the project somewhere? :^)

philipmather avatar Sep 09 '19 11:09 philipmather

Hey @philipmather!

Thanks for this issue, let's sync on the best way to get this work complete.

brahman81 avatar Sep 09 '19 11:09 brahman81

I fully agree with @philipmather . However, I was interested in trying to find a solution. Just for fun. Maybe for someone who needs RPM this will be a good start.

Right now I have packages like this image

Here is PR with changes https://github.com/stellar/packages/compare/master...BOPOHA:rpm_test?expand=1

You can try stellar-core with a few commands. For example for CentOS Stream 8 aarch64 you need to run the following commands as root :

dnf module enable postgresql:13 -y
dnf copr enable vorona/stellar-packages centos-stream-8 -y
dnf install -y stellar-core-postgres
systemctl enable --now [email protected]

I use this ec2 config: r6g.medium, 8.0 GiB 1 vCPUs, 200 GiB of EBS storage gp3,

After some time, you can check status with psql query

sudo -s -u stellar  psql "postgresql:///core?host=/var/run/stellar" -c 'select max(ledgerseq), min(ledgerseq) from public.txhistory'
 max | min 
-----+-----
     |    
(1 row)


   max    |   min    
----------+----------
 43097670 | 43095552
(1 row)

BOPOHA avatar Oct 13 '22 17:10 BOPOHA