Re: Bootstrapping an RPM area.

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

 



In regard to: Re: Bootstrapping an RPM area., Steve Juranich said (at...:

Why don't you outline your method, and we'll shoot holes in it (if need
be)?  ;-)

Okay, first there are the "build dependencies", tools that are necessary to
actually compile, these should be available on the system, but we need to
provide them if they are not:

1) tar, gzip & patch to extract the tarball and apply any necessary patches.
2) C compiler (preferably GCC).
3) GNU Make (which depends on ...?)

I don't think there are any gmake prereqs other than 1 & 2.  You might
not even need gmake for RPM, but gmake is needed by so many other packages
that I knew I would be eventually building that I just installed gmake as
soon as possible.

Next are the RPM prerequisites, things that RPM itself needs to build.  We
will most likely need to provide these:

1) The BeeCrypt library.
2) The Neon library (what does this depend on?)
3) Python

Not a strict requirement, but you probably also want bzip2.

"Optional dependencies" that can be skipped if the right flags are given to
the configure script (technically, Python would go here, but we're looking
at using SMART to do some of the work, so Python gets bumped up, plus it's
really cool):

1) Perl
2) Lua (really?)
3) gettext (we won't be needing NLS).
4) SELinux (we don't need this either).
5) Java
6) Tcl

lua and gettext are included with RPM, so you don't need external
versions.  You should be able to disable most of those during configure.

With default configure options, RPM also needs sqlite (it's not included
inside RPM, unlike BerkeleyDB).  You can likely configure around that,
I just chose to build sqlite since it builds pretty easily and is really
cool.

I don't recall needing Java or Tcl to build RPM.

To finalize the bootstrap, I'd need to create some virtual package defining
what the system provides (things like /bin/sh, libc, libstdc++, and the
like).

Yes, or use the "sysinfo" file (probably /etc/rpm/sysinfo though you can
I think change that by modifying a macro in one of the macros files that
RPM will search).  I'm a fan of virtual packages, though they seem to be
falling out of vogue.  ;-)

Note that RPM 4.4.6 also requires that you have something (either virtual
packages or /etc/rpm/sysinfo) provide directories too, so you'll to keep
all of those in mind as well.

Question:
Would I want to reinstall Python, BeeCrypt, Neon, and RPM from RPMs using
the new bootstrap rpm, or would I be better off just creating more virtual
packages that "provide" the right things for the system to get into a good
state?

That's personal preference, but I would eventually want to get to the
point where those packages too were installed via RPM.  If you have all
your local software installed via RPM, there are fewer special cases to
deal with, which might improve manageability.

So am I close, or have I missed something horribly important?  Any pointers
in the right direction would be greatly appreciated.  I am, of course,
assuming that I'll get to a point in my own checked out version of the code
when I can do a `make dist' and create a suitable tarball for use in
distribution.

I think you're close.  I chose not to disable the optional stuff, so I
did end up building a lot more of the prereqs that you will have to, but
that shouldn't cause you any problems getting started.

Thanks for the pointers about building on Solaris, I'm sure they'll come in
handy.

Let me know if you run into problems, I'll certainly try to help.

Tim
--
Tim Mooney                              mooney@xxxxxxxxxxxxxxxxxxxxxxxxx
Information Technology Services         (701) 231-1076 (Voice)
Room 242-J6, IACC Building              (701) 231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164

_______________________________________________
Rpm-list mailing list
Rpm-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/rpm-list

[Index of Archives]     [RPM Ecosystem]     [Linux Kernel]     [Red Hat Install]     [PAM]     [Red Hat Watch]     [Red Hat Development]     [Red Hat]     [Gimp]     [Yosemite News]     [IETF Discussion]

  Powered by Linux