poldek NEWS


0.20 (major enhancements release; 2005/10/28)

This release introduces new series of poldek. Significant changes and differences from 0.18.x series

Package repositories

  • repositories code has been redesigned and totally rewritten in the modular, plugin-like way, so is is quite easy to add support for new formats.

  • new 'pndir' is the default format now. It is based on tndb (cdb like) DBM library. To save bandwidth package descriptions (Description, Summary, etc) are stored in 2 separate files: first named packages.ndir.dscr with common (BuildHost, Distribution, etc) and "C" descriptions and second with all non-C descriptions).

  • 'hdrl' aka 'apt' format are update-able

  • support for Yum and Metadata XML repositories

  • repository indexes could be created in many formats at once using --mt switch, ex:

        $ poldek -s /foo/bar --mkdix --mt=pdir,pndir
  • indexes may be created from any index format, i.e conversion to to another format is supported, ex:

        $ poldek --st apt -s /foo/bar --mkidx=/ala/ma --mt=pdir
  • (re)creation of native poldek's indexes (pdir, pndir) is much faster now package headers are not loaded at all if package's file modification time is the same as saved one in existing index.

Installation related

  • uninstallation code has been rewritten and improved. Packages are removed with its reverse dependencies and in the right order, according to {pre,post}un requirements

  • poldek can perform 'to repository' installation, i.e packages are copied from source to destination repository with full dependency checking, ex:

        $ poldek -n ...  --dt pdir --destination /foo/bar/RPMS --upgrade-dist -v
        $ poldek -n ...  --dn name --upgrade-dist -v

Interactive mode

  • interactive mode commands are available directly from command line

       $ poldek --cmd ls foo
       $ ipoldek ls foo
  • command aliases are defined in external configuration file (Mariusz Mazur <mmazur a kernel pl>)

  • commands may be piped, ex:

         poldek> rsearch /poldek/ | ls -l
  • external commands are supported:

         poldek> rsearch /pol/ | !grep ^pol


  • multi word option names may be written with spaces or underscore separator, i.e: both forms "this is = foo" and "this_is = foo" are valid.

  • default location of configuration file has been changed to "${_sysconfdir}/poldek/poldek.conf", old /etc location is still supported.

  • configuration file format has been changed to ini-like one. Sources and external file getters should be configured in its own sections "source" and "fetcher", see sample configs. Old configuration format is still supported.

  • environment variables in config files are expanded, for example:

       cachedir = $HOME/.cache
  • support for simple macros has been added to make configuration easier to write and read, for example:

       _arch   = i686
       _prefix = ftp://ftp.pld.org.pl/dists
       type  = pdir
       name  = pld-ra 
       path  = %{_prefix}/ra/PLD/%{_arch}/PLD/RPMS/
       type  = pdir
       name  = pld-ra-updates 
       path  = %{_prefix}/ra/updates/general/%{_arch}/
  • %include directive has been added, it can include both local and remote files:

       %include source.conf
       %include ftp://ftp.pld.org.pl/dists/ra/source.conf

    Remote files once downloaded are stored in cache directory. To resynchronize them with it's remote copy use --upconf option.

  • support for APT sources configuration has been added - new "load apt sources list" configuration option.


  • some command line switches has been changed, but all obsoleted switches are still supported *except* "-f" (not important IMO). Changes:

          0.18.x                     0.20
       -f, --fast               => --skip-installed
       --mkidxz                 => --mkidx           (compression is on by default)
       --sidx, --sdir, --shdrl  =>                   (use --st=TYPE -s instead)
       --unique-pkg-names       => --uniq
       --shcmd                  =>                   (use --cmd or run ipoldek)
  • configuration options may be set from command line by -O switch, for example:

        $ poldek -Ovfile_external_compress=yes  
  • manual have been rewritten and enhanced (bugfix release; 2005/10/17)

  • fixed writing diff list file (packages.diff.toc)

  • update to rpm 4.4 (dropped legacy PreReq support) (Jakub Bogusz <qboosh att pld-linux org>)

  • renamed trurlib's nstream members to avoid conflicts with stdio macros (Olivier Thauvin <olivier.thauvin att aerov jussieu fr>)

  • fixed package version selection on greedy upgrade

0.18.9 (bugfix release; 2005/07/03)

  • handle package file 'mtime' tag ('t' tag) to be compatible with devel branch.

  • fixes related to glibc 2.3.5 (Jakub Bogusz <qboosh att pld-linux org>, Arkadiusz Miskiewicz <arekm att pld-linux org>)

  • fixed compilation with gcc 4.x (PLD's poldek-gcc4.patch)

  • dependency resolving issues (Mariusz Krynski <mrk att sed pl>)

  • new --pmcmd to set rpm binary in place of default /bin/rpm (Jan Rekorajski <baggins att sith mimuw edu pl>)

0.18.8 (bugfix release; 2004/12/30)

  • fixed checking file-based dependencies of packages being removed

  • fixed another dependency processing bug (hard to explain)

  • 'ls' output fixes to be parsable by external scripts (Patryk Zawadzki <patrys att pld-dc org>)

  • removed usage of superfluous n_free() (Tomasz Wittner <twittner att o2 pl>)

  • vfile's progress bar: fixed displaying total transfer and rate (Lukasz Masko <lukasz.masko att ipipan waw pl>)

  • support for RPM 4.4

  • fixed build under Owl (rpm 4.0.2 without libelf)

  • workaround for "group not found" bug

  • pl and de translation fixes (PLD Team)

0.18.7 (major bugfix release; 2004/09/24)

  • another stupid SIGSEGV killed (happened occasionally while dependency processing)

  • vfile's progress bar improvements (Patryk Zawadzki <p zawadzki att vegaballs com>)

  • fix: disabled package Epoch's autopromotion while checking if it matches requirement

  • with rpm >= 4.1 packages with same provide are obsoleted, not just name

  • fixed processing dependencies of orphaned packages

  • SIGSEGV killed while reading packages with dir/file names longer than 127 bytes

  • fixed package ordering bug

  • with --caplookup packages may be installed by specifying its capabilities, i.e: "poldek --caplookup -uv foo" will install package provides "foo" (if any).

0.18.6 (major bugfix release; 2004/06/28)

  • fixed broken dist installation

  • fixed serious bug with dependency processing of obsoleted packages

  • fixed --rpmdef '_dbpath DIR' (do not read rpm's configs many times)

  • fix: --nofollow with --install-dist works as expected (#920)

  • vfile: fixed progress bar displaying on std sized terminal (79 cols)

0.18.5 (bugfix release; 2004/05/23)

  • fixed dowloading packages from apt-like sources

0.18.4 (bugfix and minor improvements release; 2004/05/10)

  • package filenames in "non-standard" form (N-V.R.ARCH.rpm) are supported

  • killed SIGSEGVs on 64bit architecture (Jakub Bogusz <qboosh att pld-linux org>)

  • fixed Epoch comparison bug while checking uninstalled capabilities

  • vfile: progress bar shows remaining time and transfer rate (Patryk Zawadzki <p zawadzki att vegaballs com>)

  • fixed setting cache directory bug (Andreas Piesk <a.piesk att gmx net>)

  • fixed serious bug of checking unversioned dependencies

  • --ignore{arch,os} rpm options are honored

  • rpm options could be passed as --rpm=OPTION too, i.e. --rpm=ignorearch is equivalent of -- --rpm-ignorearch

  • new cmdline options --rpm-{force,nodeps} which are passed as --force and --nodeps to /bin/rpm only.

  • more aggressive package upgrades - orphaned packages are upgraded instead of processing its dependencies. This behavior is enabled by "greedy" option. To disable put "aggressive_greedy = no" to config.

  • "greedy" upgrade mode is enabled by default

  • conflicts with already installed packages are treated as resolved if at least one of multiple-installed package satisfies conflict. Of course RPM doesn't support such cases, so additionally --rpm-nodepsis needed (use with care). This behavior is enabled by default, put "allow_duplicates=no" to config to disable it.

  • displaying package size summary of installed package set

  • --unique-pkg-names (-Q) behavior is more intuitive now - highest version of package are taken instead of one from highest prioritizedsource

0.18.3 (bugfix and improvements release; 2004/01/10)

  • internal HTTP client does not prevent proxy caching (Arkadiusz Miskiewicz <arekm att pld-linux org>)

  • fixed bug on getting package capabilities having EVR with empty Epoch like "foo = :1.0-1"

  • do not die if rpmdb iterator returns NULL (possibly broken rpm database) (Arkadiusz Miskiewicz <arekm att pld-linux org>)

  • vfile_external_compress=yes in config allows gzipped indexes to be used on systems with broken zlib linked in rpmio library(rpm 4.2 from RedHat 9, Fedora)

  • kill unaligned traps on Alpha, time_t is not 32bit long (Jakub Bogusz <qboosh att pld-linux org>) (Jakub Bogusz <qboosh att pld-linux org>)

  • new "promoteepoch" config and cmdline option switches Epoch to comparision compatible with rpm prior to 4.2.1 (with help of Jakub Bogusz <qboosh att pld-linux org>)

  • support for RPM 4.2/4.3

  • dependency processing fixes

  • RPM 4.1 related fixes

0.18.1 (major bugfix release; 2002/11/27)

  • ability of creation empty indexes

  • killed SIGSEV on '$ poldek -s /' (#443)

  • fixed presentation of dependency tree during unistallations; information about what package marks an others was completely broken

  • killed SIGSEV during dependencies processing

  • fixed vfile's progress bar

  • fixed 'hold' and 'ignore' package patterns matching

  • fixed bug of interactive mode; after interrupted installation selected packages are properly unmarked now.

0.18 (bugfix/minor enhancements release; 2002/11/07)

  • support for RPM 4.1 (with help of Artur Frysiak <wiget att pld-linux org>)

  • few dependency processing improvements

  • 'hold' and 'ignore' package masks are matched with source name, package epoch, version and release, i.e. masks apache-1.3.2* or ra:apache-1* are valid ones now.

  • new: with --unique-pkg-names (-Q) packages with the same name are removed from available package set

  • sources are prioritized in order they are passed in cmdline, i.e. with $ poldek -s /foo/bar -n pld, source 'foo/bar' obtains highest priority than 'pld', no matter what priority 'pld' has in config file.

  • fixed available package list management in interactive mode

  • AM/AC stuff cleanup and adaptation to their new versions (automake 1.7 and autoconf 2.54) (Artur Frysiak <wiget att pld-linux org>)

  • Polish translation of manual page (Tomasz Pala <gotar att pld-linux org>)

  • fix: progress bar isn't refreshed so frequently (#367)

0.17.9 (bugfix/minor enhancements release; 2002/09/20)

  • Obsoletes tag is used during upgrades (if --greedy is set)

  • fixed dependency EVR matching

  • source priorities (new 'pri' source option) -- if the same package is availablein more than one source than program takes package from source with highest priority.If priorities aren't set sources are prioritized in order they are appear in config file.

  • bugfix: -s URL works fine

  • added poldek's logo (Karol Krenski <mimooh att sgsp edu pl>)

0.17.8 (major bugfix release; 2002/08/18)

  • package installation is verified with rpm database if rpm reports failure

  • fixed obsoletes matching (Jakub Bogusz <qboosh att pld-linux org>)

  • improved and fixed file based conflicts detection

  • fixed size units display (Tomasz Pala <gotar att poczta.onet.pl>)

0.17.7 (bugfix release; 2002/06/14)

  • improved package conflicts resolving

  • split: SIGSEV killed

  • fixed package removal

  • shell: search: fixed default options processing

  • another "desynchronized index" bug is fixed

  • fixed Epoch matching

  • vhttp: program doesn't die on doubled HTTP headers

0.17.6 (minor bugfix release; 2002/06/03)

  • new "--ignore" option makes packages invisible to the poldek

  • "hdrl" sources can be refreshed with --upa

  • fixed package removal: don't follow dependencies if only one of multiple-installed packages is intended to uninstall

  • shell: search: pattern is treated as shell wildcard (matched by fnmatch(3)) by default; previous behavior (Perl regular expression matching) is available with --perlre or "rsearch" alias.

  • fixed package auto-selection among equivalents: dependencies aren't verified strictly during package scoring.

  • fixed bug of equivalent package selection (<Enter> was select first, notdefault package).

  • shell: with 'upgrade' and 'greedy-upgrade' commands only upgradeable packages are auto-completed.

0.17.5 (minor bugfix release; 2002/05/15)

  • about 75% less memory is used by incremental update of packages.dir

  • improved package auto-selection among equivalents: package which marks less packages to install is preferred

  • vftp: fixed logging in when server doesn't ask for password (Przemyslaw Frasunek <venglin att freebsd.lublin.pl>)

  • bugfix: root directory (--rootdir) is always passed to rpm as absolute path

  • shell: desc: file mode is displayed in human readable form

  • fixed vfjuggle: packages.dir.md* are copied to hdd too

  • few SIGSEVs killed on "search" command when APT's pkglist file is used as package index (with help of Gustavo Niemeyer <niemeyer att conectiva com>)

0.17.4 (bugfix/minor enhancements release; 2002/05/06)

  • new (major) modes: --downgrade downgrade given packages; --reinstall major mode reinstalls given packages; --erase removes packages with its reverse dependent ones

  • shell: fixed C-c handling (connecting phase can be interrupted)

  • improved splitting

  • killed SIGSEV on long URL's basenames

  • source prefix is handled properly with --mkidx*

0.17.3 (major enhancements release; 2002/04/23)

  • supported "hdlist" files (simple raw RPM package headers list) as sources. These files are used by APT-RPM as they are widely supported by RPM based distributions. However this format isn't optimal, now poldek is useable with almost every RPM based distro without poldek's native indexes support. See poldekrc.sample-{rh,mdk} for examples of RedHat and Mandrake configuration.

  • new "type=[pidx|dir|hdrl]" source option lets define source type inconfiguration file. Needed to distinguish "hdlist" ('hdrl' type) from"native" index format. Cmdline options: --source for 'pidx', --sdir for'dir' and --shdrl for 'hdrl'.

  • support for GPG/PGP signatures verification (new "gpg" and "pgp" source options). Verification works well with rpm >= 4.0.4 or patched PLD's rpm 4.0.2 package (release 62).

  • simple HTTP client (with partly HTTP/1.1 support), it is used for HTTP downloads; cURL backend is not compiled by default.

  • added IPv6 support to internal FTP client

  • new "--clean" and "--clean-whole" options for cache directorycleanup

  • URLs with user and password (ftp://user:passwd at host:port/path/ syntax) are supported (Andreas Piesk <a.piesk att gmx.net>)

  • new "ftp_sysuser_as_anon_passwd" option causes sending login at hostname as anonymous FTP password

  • new "noautoup" source option tells poldek to do not update source by default.

  • shell: added long listig format of file list (poldek> desc -ll)

  • misc fixes to compile on SuSE

  • fixed rpm 3.x support (with help of Roger Luethi <rl att hellgate.ch>)

  • fixed and improved handling of bool configuration options, added on/off and enable/disable to the list of valid choices (Andreas Piesk <a.piesk att gmx.net>)

  • fixed detection of file based conflicts between available packages.

  • packages with capabilities with the same name and different versions are handled properly

  • misc fixes to compile and work with glibc2.1 (with help of Andreas Piesk <a.piesk att gmx.net>)

  • installation of multiple instances of package is allowed (by poldek -i)

  • fixes and improvements of dependency resolution

  • German translation (Andreas Piesk <a.piesk att gmx.net>)

  • various bugs are fixed

0.17.2 (bugfix release; 2002/03/26)

  • "ported" to RedHat 7.2 (with rpm 4.0.4)

  • install-dist: --force forces installation of broken package sets

  • corrected package installation progress bar (Michal Moskal <malekith att pld-linux org>)

  • install-dist: log INST-{OK,ERR} for PLD Installer (Michal Moskal <malekith att pld-linux org>)

  • --dump* works properly

  • vftp: fixed error handling

0.17.1 (bugfix release; 2002/03/26)

  • ftp: fixed multiline responses handling

0.17 (major enhancements release; 2002/02/21)

  • added support for package.dir's "patches" (new option --update-whole updates whole index; --update looking for patches first)

  • packages are divided into groups before install and each group is installed separately; this ensures that broken dependencies in one of group doesn't affect the rest.

  • improved dependency processing

  • added simple ftp client; it is used for FTP downloads by default

  • shell

  • added log file support (--log option)

  • sources may be configured as name and URL pair and later selected by that name (new --sn|-n option); with --sl|-l program lists all configured sources.

  • packages.dir's integrity is verified before each loadingwhat prevents program SIGSEVs on load broken indexes

  • changed default cache directory to $HOME/.poldek-cache

  • package MD5 sums are verified before install

  • with --ask program confirms each installation (confirm_install config option) and allows the user to choose among equivalent packages (choose_equivalents_manually config option)

  • few (nice) improvements and (not so nice ;-) bugs fixed

0.16 (bugfix release; 2002/01/29)

  • fixed removable media support in non-install-dist modes

  • shell: uninstall: fix: don't remove pkg from install list if removal fails

0.15.9 (major enhancements release; 2002/01/11)

  • shell

  • removed GCC's nested functions usage -- seems that it causes SIGSEVs on some machines (Arkadiusz Patyk <areq att pld-linux org>)

  • fix: don't include trailing whitespaces in config values

0.15.8 (bugfix release; 2001/10/29)

  • curl: disabled timeouts, cURL's timeout it's a time to transfer file

  • curl: amount and total sizes are displayed in progress bar

  • fix: enabled --hold

  • fix: SIGSEV killed when pkg description requested while pkg index doesn't contain package descriptions at all

  • shell: fixed installed package list management

  • curl: fixed progress bar if total file size is unknown (Michal Moskal <malekith att pld-linux org>)

  • "mercy" mode bugfix

0.15.7 (major enhancements release; 2001/10/10)

  • downloaded packages are removed after successful installation by default (keep_downloads=yes in config can change to previous behavior)

  • changed semantics of --test: -t causes poldek's checks only, -tt turns on tests performed by rpm too.

  • "mercy" dependency checking mode may be enabled in config

  • added workarounds and traps for (probably) curl's bugs

  • "update" option can be used with other commands simultaneously

  • shell mode is now the default

  • shell: added greedy option to install cmd

0.15.6 (bugfix/major enhancements release; 2001/08/12)

  • package priorities could be used during installation too (/etc/poldek-pkgsplit.conf or /etc/poldek-pri.conf is used by default)

  • added global config /etc/poldek.conf usage

  • fixed prereq loop detection

  • added '@' to list of valid characters in package filename (Rafal Kleger-Rudomin <klakier att pld-linux org>)

  • vfjuggle: sed is used instead of awk (Rafal Kleger-Rudomin <klakier att pld-linux org>)

  • shell: ls: fixed packages sorting

  • minor bugfixes

0.15.5 (bugfix release; 2001/07/20)

  • another bugfix of dependency processing

  • shell: new ls options: -t, -T, -r

  • added --shcmd option which allows to execute poldek's shell command without entering shell mode

  • detect if stdout is connected to a terminal and display progress bars accordingly.

  • install-dist: retry to fetch packages if connection is down

0.15.4 (bugfix release; 2001/07/17)

  • conflicts detection bugfix

0.15.3 (bugfix release; 2001/07/16)

  • another bugfix of dependency processing

  • splitted verify option to verify, verify-conflicts and verify-fileconflicts

  • more user friendly output on package set verification

0.15.2 (bugfix/major enhancements release; 2001/07/13)

  • added "hold" and "greedy" commands

  • added FIRST_FREE_SPACE param to split option

  • fixed bug of dependency processing

  • minor bugfixes

0.15.1 (major bugfix release; 2001/06/28)

  • spliting: changed packages.chunk* format: full package filenames are printed and removed comments.

  • bugfixes

0.15 (bugfix/major enhancements release; 2001/06/26)

  • updated vfcurl progress bar handling (according to curl 7.8)

  • better index format version handling (minor.major ver schema), current version is 1.0, older versions not supported...

  • package's integer fields are stored in binary form, groups are stored as separate, global tag

  • remote indexes are verified after download

  • added checking of package architecture and OS

  • added support for removable media (vfjuggle script is added)

  • added package file size to index (for spliting)

  • added "nofollow" option to cmdline and "follow" one to config

  • renamed "freshen" to "fresh" and changed its semantics, now rpm's "--freshen" <=> "--nofollow --fresh"

  • changed default index name to "packages.dir"

  • added mkpackagedir script

  • added spliting (--split* options)

  • package-set file syntax: changed "maybe" mark to '~' ('!' still work, but obsoleted)

  • shell

  • many bugfixes (Rafal Kleger-Rudomin <klakier att pld-linux org>, Michal Moskal <malekith att pld-linux org>)

0.14 (bugfix/major enhancements release; 2001/06/12)

  • support for multiple sources

  • Packages SHA1 digest is computed and checked (Packages.md is created)

  • capabilities/requirement are stored in binary form (v0.4 of Packages format)

  • default name (Packages[.gz]) is used if only dir is given as source (i.e. it's last character is '/')

  • shell: both installed and available packages list is maintained properly during installs/unistalls without reloading rpm database

  • shell: added "search" command

  • removed unused support for rpmidx (aka tocfile)

  • cleanup and bugfixes