LFS-RPM/TODO

111 lines
3.3 KiB
Plaintext

Update rpm to 4.14.2.1:
* update setup.sh, download 4.14.2.1 tarball
* update tools.sh, build 4.14.2.1
* update base.sh: not needed
* update rpm.spec, see below
* drop python dependency
#TARBALL: ftp.rpm.org/releases/rpm-4.14.x/rpm-4.14.2.1.tar.bz2
#TARBALL: http://download.oracle.com/berkeley-db/db-6.0.20.tar.gz
#MD5SUM: fdb8b8857f103b087b6aed5b78dd9b4f;rpm-4.14.2.1.tar.bz2
#MD5SUM: f73afcb308aefde7e6ece4caa87b22a9;SOURCES/db-6.0.20.tar.gz
#-----------------------------------------------------------------------------
Summary: Package manager
Name: rpm
Version: 4.14.2.1
Release: 1
License: GPLv2
URL: http://rpm.org
Group: LFS/BASE
Vendor: Elizabeth
Source0: ftp.rpm.org/releases/rpm-4.14.x/%{name}-%{version}.tar.bz2
Source1: http://download.oracle.com/berkeley-db/db-6.0.20.tar.gz
Source2: macros
Requires: filesystem
%description
Package manager
#-----------------------------------------------------------------------------
%prep
%setup -q -n %{name}-%{version}
%setup -q -T -D -a 1 -n %{name}-%{version}
sed -i 's/--srcdir=$db_dist/--srcdir=$db_dist --with-pic/' db3/configure
%build
ln -vs db-6.0.20 db
./configure \
--prefix=%{_prefix} \
--program-prefix= \
--sysconfdir=/etc \
--with-crypto=openssl \
--with-cap \
--with-acl \
--without-external-db \
--without-archive \
--without-lua \
--disable-dependency-tracking \
--disable-silent-rules \
--disable-rpath \
--disable-plugins \
--disable-inhibit-plugin
# --enable-python python bindings
# --with-python=2.7 python bindings
# --with-archive build rpm2archive - requires libarchive
# --with-lua build with lua support
tools.sh:
--prefix=/tools \
--program-prefix= \
--sysconfdir=/tools/etc \
--with-crypto=openssl \
--without-external-db
--without-archive \
--without-lua \
--disable-dependency-tracking \
--disable-silent-rules \
--disable-rpath \
--disable-plugins \
--disable-inhibit-plugin
--disable-shared \
--enable-static \
--enable-zstd=no \
--enable-lmdb=no \
Read base.spec to get list of packages to install
BASE.SPEC GENERATOR:
TODO for base.sh
Make a base.spec generator
list= $( ls rpm dir )
for i in $list; do
case $i in
filespec*) ;;
*) LIST+="Requires: ${i} " ;;
esac
done
write header
write requires
write end
then build base package
RPM PACKAGE INSTALLER:
fetch package name start with base ( sort unique )
determine binary package name insert into name = ${REPOPATH}/package name-* to process
do until - process names, de dupe names
requirements = $( rpm -qp --requires ${RPMS}/${RPM_ARCH}/${RPM_BINARY}): > ${REQUIRES}/${RPM_NAME} 2>&1 || true
work string = $( rpm <name> requirements )
determine requires [ rpm -qp --requires <filespec> ] if / then filespec add to rpm list
determine requires [ rpm -qp --requires <libary ] ] if ( then library add to rpm list
determine requires [ rpm -qp --requires <package> ] else package add to rpm list
binary name = strip current name from list of package names
no more
LIST+="${REPOPATH}/${i##Requires:}* "
rpm -qp --requires ${RPMS}/${RPM_ARCH}/${RPM_BINARY} > ${REQUIRES}/${RPM_NAME} 2>&1 || true
# rpm -q --whatprovides [file name]
for i in ${LIST}; do
find requires
msg_line "installing: ${i} :"
rpm --upgrade --verbose --hash --noscripts --root ${ROOTPATH} --dbpath ${DBPATH} "${REPOPATH}/${i}-*"
msg_success
done