From Fedora Project Wiki
fp-wiki>ImportUser
(Imported from MoinMoin)
 
m (1 revision(s))
(No difference)

Revision as of 16:35, 24 May 2008

Stop (medium size).png THIS IS A DRAFT ONLY. DO NOT RELY ON IT UNTIL THIS NOTICE DISAPPEARS AND THE DOCUMENT IS PUBLISHED AS FINAL.

RPM Forward Ideas

Introduction

With RPM 4.4.2.1 fresh out and 4.4.x branched off to maintenance mode, time to start looking forward to next major release. While the focus will be largely in cleaning up and streamlining the codebase, it can't realistically be all about just that.

Panu Matilainen

Ideas

In no particular order:

  • improving automatic dependency extraction
  • plugin architecture for internal dependency extractor to avoid having

to patch rpm itself for each new language

  • libtool, pkgconfig requires + provides (easily ported from rpm5.org)
  • buildrequires match cross-arch on multilib, not good
  • -devel package dependencies match cross-arch on multilib, not good
  • language bindings to eliminate the need for output parsing
  • Python bindings
  • Unix philosophy (do just one thing and do it well)
  • move GPG key management to helper app
  • move remote protocol handling to helper appps
  • ftp,http to wget
  • possibly use wget code
  • possibly use wget if available, error out if not
  • soft dependencies
  • version control meta information
  • version control pristine configuration files
  • simpler package database repair/restore
  • restore/rollback functionality (to reverse package changes, and restore pristine files)
  • tagging
  • specify if package was installed as a dependency or on its own
  • specify general purpose of package contents (libs, headers, docs, general)
  • specify method of installation (direct, yum, piruit,...)
  • specify repository from which package was installed
  • automatic, optional removable of no longer necessary packages originally installed as deps
  • arch requires and provides should be automatic until the packager say Requires: foo.arch
  • transaction journaling
  • unprivileged user installations
  • optional recognition of unmanaged meeting of dependencies (such as libs installed from source)
  • optionally compressed headers
  • usable C/C++ API
  • usable API documentation