OpenPKG Release Notes ===================== o $Revision: 1.30 $. The most recent update of this file can be downloaded from http://cvs.openpkg.org/openpkg-re/releasenotes.txt The history of this document, specific versions and differences between versions can be retrieved from http://cvs.openpkg.org/rlog?f=openpkg-re/releasenotes.txt o This file describes new features and improvements introduced in the respective OpenPKG release. It can be useful when upgrading, especially in avoiding the most common upgrade problems. o This file accompanies news.txt which serves as a one page generalization of OpenPKG's life history. o This file obsoletes upgrade.txt General Notes about Upgrading ============================= o Genealogy 1.0, 1.1, 1.2, 1.3, (1.9 available for upgrades from 1.x to 2.x) 2.0, 2.1, 2.2, 2.3, 2.4, 2.5, 2.20060622, 2.20061018, 2.20070221 2 (STABLE) CURRENT E1.0 is very close to 2.20061018 o Avoid skipping a release when upgrading, especially the bootstrap. o Limit release mixing within a single instance to the bare minimum. o Be aware that as new features and improvements are added, both major and minor OpenPKG upgrades might introduce incompatabilities with older OpenPKG components. Packages are always upgraded to their most stable and up to date vendor versions. Nevertheless, packages may be split, consolidated, or renamed. In rare cases packages are removed, leaving no upgrade path at all. OpenPKG is only released after a quality assurance process confirms its integrity, but in most cases some testing, adjustment, or other postupgrade administration is needed. Please plan accordingly when upgrading to a new version. o In contrast to package version upgrades in CURRENT an STABLE, updates on the SOLID/RELEASE branch are designed to be drop-in replacements and usually require little or no brain work. o The extent of security engineering advances with each new RELEASE or STABLE snapshot appearing in the genealogy. Security advisories and update packages are only issued for the latest release/snapshot and its immediate predecessor. Continuing to run outdated release packages not within the aforementioned range introduces risks. o Registry In November 2005, after the release of OpenPKG 2.5, the Registry was introduced. The client part to register and to rewrite rpm URLs was made available as a CURRENT package with openpkg-registry-0.3.0 being the most widespread in use for roughly half a year. Beginning with bootstrap openpkg-20060512 the client part became embedded and did no longer require the use of a extra package. Coexistence of a modern bootstrap with a external package is not recommended but possible with the following ceveat: a bug in openpkg-registry-0.3.0 causes the "register" command to accidentally call rpm where it should have called itself. This causes strange error messages regarding unsupported register options. The rpm URL rewriting still continues to work and allows the instance to operate and to upgrade packages. It is necessary to upgrade to openpkg-registry-0.4.1 or later to fix the problem. It is recommended to erase the openpkg-registry package because the whole functionality is embedded in the bootstrap anyway. New in CURRENT past OpenPKG-2-STABLE-20070221 ============================================= o nothing documented, yet New in OpenPKG-2-STABLE-20070221 ================================ o openpkg curl This new tool is a wrapper around the curl application shipped with the bootstrap. It ensures the first option to curl is always "-q", ignoring all ~/.curlrc files. It also checks whether a readable %{l_prefix}/etc/openpkg/curlrc file exists and adds a "--config ..." option automatically. The wrapper also goes through URL rewriting to obey registered instances. Finally, the "openpkg" master program ensures use of appropriate user ids. o openpkg build This tool has been modified to use "openpkg curl" to fetch index files, source and binary RPMs. The ftp and http capabilities internal to rpm are no longer used by this tool. Downloaded files are removed after clean usage unless the new "-k" option is used to keep the files unconditionally. The result of is change is a uniform configuration of proxies through %{l_prefix}/etc/openpkg/curlrc, support for custom user:pass@ URLs with http (unsupported by rpm 4.2.1) and support for https (entirely unsupported by rpm 4.2.1). o openpkg register The tool has been adjusted to remember the --user and --link options of the last successful registration for later reuse. Unless custom parameters are supplied, it automatically downloads anonymous link credentials from the openpkg.org website. Any instance is automatically registered online at installation time and it re-registers daily. This behaviour happens unconditionally and creates network traffic which might cause costs to the user. The (re)registration constantly updates the openpkg registry with information about package names, versions, releases and options being used in the field. o %{l_prefix}/etc/rc.conf new configuration variables openpkg_reghour="3" -> specifies the local time hour 0-23 when (re)registration is triggered. openpkg_regrand="1" -> specifies the random range of hours 1-4 added to reghour to distribute workload. New in OpenPKG-2-STABLE-20061018 ================================ o Build Tool The "openpkg install openpkg-tools" helper tool has been removed because the real "openpkg build" tool is now integrated into the bootstrap. o SetUID The "openpkg" command is now a SUID executable, if the instance is installed by root. If the instance is installed by an unprivileged user, the functionality is not available. The new feature allows privilege adjustments based on the task to be done. A new configuration file %{l_prefix}/etc/openpkg/managers lists the users which may receive additional privileges. If "openpkg" is run by an user not listed in the managers file or the option --keep-privileges is specified, then the command drops its accelerated privileges as early as possible. It also drops the privileges for listed users which execute tasks that do not require superuser permissions, e.g. "openpkg rpm --rebuild". Typical tasks that do require additional permissions, e.g. "openpkg rpm -Uvh" and "openpkg rc", can be easily used by users listed as instance managers. By default, the "root" user and the instance management user are listed as managers. The management user is able to now really manage the complete instance as it now is able to build and install packages, stop and start services, etc. For instance if it runs "/etc/openpkg --rebuild ..." this is still done under his privileges, but the following "/etc/openpkg -Uvh ..." is done with root privileges. This means no more "sudo" setups required for the management user and especially the OpenPKG handling is much simplified for the average user as he no longer has to think about whether he has to switch to or from root for the next command all the time. The super user is now downgraded to the management user for commands which do not require super user privileges. This especially means that if the super user executes a "/etc/openpkg --rebuild ..." it automatically internally is executed under the management user. This way no more packages _CAN_ be built under root privileges. This is a further improvement in security and also improves the OpenPKG "sane build environment" idea. ----------+---------------+---------------- caller is | task requires | effective "manager" | privileges | privileges ----------+---------------+---------------- no | no | caller no | yes | caller yes | no | management user yes | yes | super user ----------+---------------+---------------- Note the default configuration prevents "root" from building packages with its inherent superuser privileges, instead they are dropped and mapped to the management user. During transition from older releases which have remaining files from failed builds in the %{l_prefix}/RPM/SRC or %{l_prefix}/RPM/TMP and these files were written by root then they cannot be removed by the new build process because of dropped privileges and the buildl will fail. Simply remove them with standard Unix tools before running "openpkg". o SetUID on GNU/Linux The glibc is known to exhibit a misbehavior that drops certain variables from the environment when launching a SetUID executable. There is no way for the application to recover the environment chucked out - a design flaw presumably conceived as security feature. The most annoying issue for OpenPKG is probably the removal of TMPDIR, which leads to various problems with "openpkg dev" and surly for other tools. The workaround for "openpkg dev" is to set OPENPKG_TEMP in ~/.openpkg/dev.rc directly without deducing it from TMPDIR. Please consult the Linux documentation, if any :-), to understand this deficiency. o %{l_openpkg_release} rpmmacro Packages already have been modified to no longer use the outdated "-F %s" construct and compatibility has been dropped from the bootstrap. o X11 packages OpenPKG focuses on the creation of reproducible server solutions. It can be used to package desktop applications but we placed almost all of them into the EVAL package class. o EVAL packages By popular demand, EVAL packages have been snapshotted, too. This doesn't make them work better but it allows end users and developers to access the packages that belong to the timeframe of the snapshot even if CURRENT development made them long gone. o ISO images No ISO images will be rolled for STABLE and snapshots. o UPD folder As a consequence of no longer providing ISO images, files can be changed (00INDEX.rdf) and added (Updates) to the original location. The UPD folder sibling to BIN and SRC has been removed. Updates will be placed into the SRC folder directly. New in OpenPKG-2-STABLE-20060622 ================================ o Vendor packages updated watch out for candidates making an upgrade a bumpy ride - php-4.4.0 => php-5.1.4 (also in apache::with_php) - mysql-4.1.14 => mysql-5.0.22 o Build Tool The "openpkg install openpkg-tools" helper tool has been replaced by a "openpkg build openpkg-tools" simulator that comes with the bootstrap and is able to download, build and install the "openpkg-tools" package which in turn overrides the simulator with the full blown "openpkg build" tool. The simulator works compatible to the full blown "openpkg build" in the areas of detection of and downloading of available packages and it creates an identical shell script output suitable for piping into sh(1). o Release detection The bootstrap internal logic, including the %{l_openpkg_release} rpmmmacro, the "openpkg build" simulator and the full blown "openpkg build" tool use a new and common code base to detect whether the instance they belong to runs OpenPKG-CURRENT, -STABLE or -SOLID/-RELEASE. A new and powerful "openpkg release" command was added to provide a suitable human and programmatic interface to the detection logic. The logic operates on package names and by design [1] cannot detect snapshots, thus updates will be searched in the appropriate branch unless manual configuration is done. [1] see "Package Name" column in http://www.openpkg.org/development/cvs.txt o %{l_openpkg_release} rpmmacro The rpmmacro in the STABLE branch is backwards compatible to previous versions and supports the outdated "-F %s" query construct which is used by some STABLE packages. o Release TAG and URL configuration To replace release detection logic by manual configuration, create a %{l_prefix}/etc/openpkg/release file and place a TAG setting inside, e.g. "TAG=2-STABLE-20060622". It is also possible to point "openpkg build" to an alternate package download location, usually a local mirror of - probably modified - packages. See "openpkg man release". o Recommended Upgrade procedure from any OpenPKG-2.x-RELEASE The steps below assume you work as m_usr and become root by means of sudo. Please adjust if you use another mechanism to gain higher privileges or simplify if you work as root all the time. 1# su - m_usr 2$ openpkg rpm --rebuild ftp://ftp.openpkg.org/stable/2.20060622/SRC/openpkg-2.20060622-2.20060622.src.rpm 3$ MY/sudo $HOME/bin/openpkg rpm -Uvh $HOME/RPM/PKG/openpkg-2.20060622-2.20060622.*-*-*.rpm 4$ openpkg rpm -e openpkg-tools openpkg-registry 5$ #optional echo "TAG=2-STABLE-20060622" >$HOME/etc/openpkg/release 6$ openpkg register --mode=post --user=you@example.com 7$ openpkg build openpkg-tools | sh 8$ openpkg build -P MY/sudo -ZaKB | sh 1 switch to the administrative user environment. The m_usr is a good choice and assumed in this example having HOME set to the instance prefix. You can omit this step if you work as superuser all the time. 2 fetch and rebuild the bootstrap. The example shows the snapshotted version which works verbatim. You might find an update in the UPD folder beneath SRC. Or climb up the STABLE branch looking into ftp://ftp.openpkg.org/stable/2/. 3 update the bootstrap. The example shows sudo in action and assumes the sudoers file has been configured in advance, allowing m_usr to execute $HOME/bin/openpkg as superuser. 4 remove openpkg-tools and openpkg-registry. The bootstrap contains a "openpkg build" simulator which is able to download new tools. The registry client is completely embedded in new bootstraps. 5 by default, "openpkg build" will look for the latest packages in the branch most appropriate for your bootstrap: CURRENT, STABLE or SOLID/RELEASE. If you want to stay close to the snapshot and not follow the STABLE branch then tell the tool to stay on a certain TAG. This is a completely optional step. 6 register the instance, of course replacing the user data with the ones you used previously to enroll an account on http://registry.openpkg.org/. The easiest way is to use the post mode, which requires a working HTTP connection to be established from the instance to the registry. If this is not possible or allowed, use --mode=fake and copy'n'paste the registration data into the registry drop-xml form. Do not forget to login into the registry and associate the instance with your account. Otherwise downloads will not work. 7 run the "openpkg build" simulator which will download, rebuild and install "make", "binutils", "gcc", "perl" and "openpkg-tools". After that step the "openpkg build" command is full featured. 8 use the full feature "openpkg build" command to upgrade all packages. Note that the "-Za" combination is new in openpkg-tools-0.8.59. Also new is the creation of run-time tests with -B to compare binaries with installed versions based on MD5, leading to exact install decisions to skip package installs of already installed packages (continue after abort) while still detecting package rebuilds which come with same name-version-release identifier (rebuilds with different prereq libs or alternate options). o Issue with "openpkg build -Za" and virtual packages The "openpkg-tools-0.8.59" introduced the -Za combination but it is not smart enough to automatically set a hint for vitual packages. Assumed one package requires MTA and the instance had "ssmtp" providing MTA, a -Za will fail. To remedy the problem, manually specify the hint using "-H ssmtp" in the example above. The limitation has been remove din "openpkg-tools-0.8.65". o Issue with apache::with_mod_php_pcre The PHP4 included in the apache-1.3.33-2.5 has PCRE enabled by accident, even with_mod_php_pcre = no. The PHP5 included with apache-1.3.37-2.20060728 comes with the same default and the option is working properly. The result is that applications using PHP preg_*() functions did work in OpenPKG 2.5 even the option was incorrectly set/left to "no" but they fail after an upgrade unless the option is explicitly correct set to "yes". The "openpkg build" tool does not automatically correct this problem. The problem can be identified finding an error message like "[error] PHP Fatal error: Call to undefined function preg_replace()" in the Apache error log. To remedy the problem, rebuild apache with with_mod_php_pcre = yes. Upgrade from OpenPKG-2.5-RELEASE to OpenPKG-2-STABLE-20060622 ============================================================= o sudo In OpenPKG-2-STABLE-20060622, the group ownership of the sudo(8) configuration file %{l_prefix}/etc/sudo/sudoers has changed from %{l_mgid} to %{l_sgid}. Unfortunatelly, this change isn't reflected when upgrading the sudo package (this seems to be a general limitation of rpm(8) when upgrading files flags as config). Therefore, invocations of sudo(8) will fail with panic messages in sudo.log. In order to fix the problem, please change group ownership of %{l_prefix}/etc/sudo/sudoers to %{l_sgid}. New in OpenPKG-2.5-RELEASE ========================== o Vendor packages updated OpenPKG 2.5 reflects the state of vendor software as of October 2005. The release consists of 579 CORE, BASE, and PLUS class packages. o Platforms supported A platform is supported when all CORE, BASE, and PLUS class source packages work, and the release contains binary packages for all CORE, BASE, and PLUS classes as well. OpenPKG 2.5 supports the following: amd64-freebsd5.4 FreeBSD 5.4-STABLE ix86-debian3.1 Debian GNU/Linux 3.1 ix86-fedora4 RedHat Fedora Core 4 ix86-freebsd5.4 FreeBSD 5.4-STABLE ix86-freebsd6.0 FreeBSD 6.0-STABLE ix86-netbsd2.0.2 NetBSD 2.0.2 ix86-rhel4 RedHat Enterprise Linux 4 ix86-solaris10 Sun Solaris 10 ix86-solaris9 Sun Solaris 9 ix86-suse10.0 Novell OpenSUSE Linux 10 sparc64-solaris10 Sun Solaris 10 sparc64-solaris9 Sun Solaris 9 A platform is 'tentatively' supported when all CORE class source packages alreay work, most BASE and PLUS class source packages work. The release contains binary packages for the CORE class only. OpenPKG 2.5 supports the following: ia64-freebsd5.4 FreeBSD 5.4-STABLE ix86-freebsd7.0 FreeBSD 7.0-CURRENT ix86-gentoo1.12.0 Gentoo Linux 1.12.0 ix86-mandriva10.2 Mandriva 10.2 A platform is 'obsoleted' when all CORE class source packages still work, most BASE and PLUS class source packages work. The release contains binary packages for the CORE class only. OpenPKG 2.5 supports the following: ix86-freebsd4.11 FreeBSD 4.11-SOLID ix86-suse9.3 Novell/SUSE Linux 9.3 Professional sparc64-solaris8 Sun Solaris 8 The OpenPKG 2.5 release does not include binaries for other platforms. No binaries are provided for PLUS packages. Updates (in UPD directory) are only available as source packages. Packages with a class other than CORE, BASE, or PLUS are not part of the release. There are many such packages, and most of them belong to the EVAL class. They are available however, and are found in the 'current' subdirectory of the OpenPKG FTP server. New in OpenPKG-2.4-RELEASE ========================== o Vendor packages updated OpenPKG 2.4 reflects the state of vendor software as of June 2005. The release consists of 562 CORE, BASE, and PLUS class packages. o Organizational change This is the first release created with the ideational, financial, material and manned support from the "OpenPKG Foundation e.V.", see http://www.openpkg.net/ o Platforms supported A platform is supported when all CORE, BASE, and PLUS class source packages work, and the release contains binary packages for all CORE, BASE, and PLUS classes as well. OpenPKG 2.4 supports the following: ix86-debian3.1 Debian GNU/Linux 3.1 ix86-fedora3 RedHat Fedora Core 3 ix86-freebsd5.4 FreeBSD 5.4-STABLE ix86-netbsd2.0.2 NetBSD 2.0.2 ix86-solaris10 Sun Solaris 10 ix86-solaris9 Sun Solaris 9 ix86-suse9.3 Novell/SUSE Linux 9.3 Professional sparc64-solaris9 Sun Solaris 9 A platform is 'tentatively' supported when all CORE class source packages alreay work, most BASE and PLUS class source packages work. The release contains binary packages for the CORE class only. OpenPKG 2.4 supports the following: amd64-freebsd5.4 FreeBSD 5.4-STABLE ia64-freebsd5.4 FreeBSD 5.4-STABLE ix86-freebsd6.0 FreeBSD 6.0-CURRENT ix86-gentoo1.6.12 Gentoo Linux 1.6.12 ix86-mandriva10.2 Mandriva 10.2 A platform is 'obsoleted' when all CORE class source packages still work, most BASE and PLUS class source packages work. The release contains binary packages for the CORE class only. OpenPKG 2.4 supports the following: ix86-freebsd4.11 FreeBSD 4.11-STABLE ix86-rhel3 RedHat Enterprise Linux 3 ES sparc64-solaris8 Sun Solaris 8 The OpenPKG 2.4 release does not include binaries for other platforms. No binaries are provided for PLUS packages. Updates (in UPD directory) are only available as source packages. Packages with a class other than CORE, BASE, or PLUS are not part of the release. There are many such packages, and most of them belong to the EVAL class. They are available however, and are found in the 'current' subdirectory of the OpenPKG FTP server. o SELinux Perl modules with C code fail to load with SELinux enabled (seen on ix86-fedora3). The perl-www and perl-par packages even fail during build. SELinux must be disabled. New in OpenPKG-2.3-RELEASE ========================== o Vendor packages updated OpenPKG 2.3 reflects the state of vendor software as of February 2005. The release consists of 545 CORE, BASE, and PLUS class packages. o Platforms supported A platform is supported when all CORE, BASE, and PLUS class source packages work, and the release contains binary packages for all CORE, BASE, and PLUS classes as well. OpenPKG 2.3 supports the following: ix86-freebsd5.3 FreeBSD 5.3-STABLE ix86-freebsd4.11 FreeBSD 4.11-STABLE ix86-rhel3 RedHat Enterprise Linux 3 ES ix86-suse9.2 SuSE Linux 9.2 ix86-debian3.0 Debian GNU/Linux 3.0 ix86-suse9 SuSE Linux Enterprise Server 9 ix86-solaris9 Sun Solaris 9 sparc64-solaris9 Sun Solaris 9 sparc64-solaris8 Sun Solaris 8 ix86-solaris10 Sun Solaris 10 sparc64-solaris10 Sun Solaris 10 ix86-fedora3 RedHat Fedora Core 3 A platform is 'tentatively' supported when all CORE class source packages work, most BASE and PLUS class source packages work, and the release contains binary packages for only the CORE class. OpenPKG 2.3 supports the following: ia64-freebsd5.3 FreeBSD 5.3-STABLE sparc64-freebsd5.3 FreeBSD 5.3-STABLE hppa-hpux11.11 HP UX 11.11 ppc-darwin7.8.0 Darwin 7.8.0 ix86-netbsd2.0 NetBSD 2.0 ix86-debian3.1 Debian GNU/Linux 3.1 ix86-gentoo1.6.9 Gentoo Linux 1.6.9 ix86-freebsd6.0 FreeBSD 6.0-CURRENT ix86-mandrake10.1 Mandrake Linux 10.1 The OpenPKG 2.3 release does not include binaries for other platforms. No binaries are provided for PLUS packages. Updates (in UPD directory) are only available as source packages. Packages with a class other than CORE, BASE, or PLUS are not part of the release. There are many such packages, and most of them belong to the EVAL class. They are available however, and are found in the 'current' subdirectory of the OpenPKG FTP server. o Package removed from release: - mysql41 (now mysql) o Packages introduced in this release: - config EVAL -> BASE - fontconfig PLUS -> BASE - perl-cache BASE - perl-devel BASE - perl-math BASE - perl-stats BASE - postgresql7 BASE - cfg EVAL -> PLUS - flowtools EVAL -> PLUS - gmp EVAL -> PLUS - hypermail EVAL -> PLUS - kwiki EVAL -> PLUS - librsvg EVAL -> PLUS - mysql40 PLUS - php5 EVAL -> PLUS - ripe-asused EVAL -> PLUS - ripe-dbase EVAL -> PLUS - softflowd EVAL -> PLUS - wmctrl EVAL -> PLUS New in OpenPKG-2.2-RELEASE ========================== o Vendor packages updated OpenPKG 2.2 reflects the state of vendor software as of October 2004. The release consists of 528 CORE, BASE, and PLUS class packages. o Platforms supported A platform is supported when all CORE, BASE, and PLUS class source packages work, and the release contains binary packages for all CORE, BASE, and PLUS classes as well. OpenPKG 2.2 supports the following: ix86-debian3.0 Debian GNU/Linux 3.0 ix86-fedora2 RedHat Fedora Core 2 ix86-freebsd4.10 FreeBSD 4.10-STABLE ix86-freebsd5.3 FreeBSD 5.3-CURRENT ix86-rhel3 RedHat Enterprise Linux 3 ES ix86-solaris9 Sun Solaris 9/x86 ix86-suse9.1 SuSE Linux 9.1 sparc64-solaris8 Sun Solaris 8 sparc64-solaris9 Sun Solaris 9 A platform is 'tentatively' supported when all CORE class source packages work, most BASE and PLUS class source packages work, and the release contains binary packages for only the CORE class. OpenPKG 2.2 supports the following: hppa-hpux11.11 HP UX 11.11 ix86-debian3.1 Debian GNU/Linux 3.1-pre ix86-gentoo1.5.3 Gentoo Linux 1.5.3 ix86-mandrake10.0 Mandrake Linux 10 ix86-suse9.0 SuSE Linux 9.0 ix86-netbsd1.6.2 NetBSD 1.6.2 ix86-solaris10 Sun Solaris 10/x86 sparc64-solaris10 Sun Solaris 10 sparc64-solaris2.6 Sun Solaris 2.6 The OpenPKG 2.2 release does not include binaries for other platforms. No binaries are provided for PLUS packages. Updates (in UPD directory) are only available as source packages. Packages with a class other than CORE, BASE, or PLUS are not part of the release. There are many such packages, and most of them belong to the EVAL class. They are available however, and are found in the 'current' subdirectory of the OpenPKG FTP server. o Package removed from release: - ethereal PLUS -> EVAL (downgraded due to portability problems) o Packages introduced in this release: - aegis PLUS -> BASE - bochs PLUS -> BASE - elm PLUS -> BASE - nail PLUS -> BASE - altermime EVAL -> PLUS - amanda EVAL -> PLUS - boa EVAL -> PLUS - ctags EVAL -> PLUS - dcron EVAL -> PLUS - ddd EVAL -> PLUS - enscript EVAL -> PLUS - fping EVAL -> PLUS - gconf EVAL -> PLUS - gentoo EVAL -> PLUS - giftoxic EVAL -> PLUS - libidn EVAL -> PLUS - orbit2 EVAL -> PLUS - jabberd EVAL -> PLUS - libidl EVAL -> PLUS - libspf2 EVAL -> PLUS - libsmbclient EVAL -> PLUS - linc EVAL -> PLUS - mico EVAL -> PLUS - monit EVAL -> PLUS - mrtg EVAL -> PLUS - ne EVAL -> PLUS - p0f EVAL -> PLUS - perl-par EVAL -> BASE - postgrey EVAL -> PLUS - rbldnsd EVAL -> PLUS - ripe-whois EVAL -> PLUS - snmpdx EVAL -> PLUS - tightvnc EVAL -> PLUS - xml2rfc EVAL -> PLUS - xmlcatmgr EVAL -> PLUS o Building from source Please build all permanent packages from source! The binary packages which OpenPKG provides in each release are not maintained, not intended for production use, and not as secure as packages built from source. Building packages (including the bootstrap) from source requires a working development environment. It must include make(1), a linker, a C compiler and several important system libraries and header files. While many Unix vendors (like most BSD distributions) offer such tools as part of the OS, others (like Solaris or Linux) ship systems with reduced or outright missing development tools. Many such requirements can be provided by OpenPKG itself, because binary RPM packages are released for all of OpenPKG's supported platforms. o Bootstrapping with binary packages To use OpenPKG to satisfy its own requirements (bootstrapping), find the binary RPMs for the platform in question. Install the already built openpkg bootstrap package (it will be installed in /openpkg). Then using the new openpkg(1) command in /openpkg/bin, install make, binutils, and gcc. This should be enough to start building the real OpenPKG bootstrap package for a different directory (for example /usr/opkg). Because no OpenPKG package provides system specific libraries and header files (for example libc or libm), these must be present. Should such a requirement be missing, it can probably be easily installed using some system specific installer. For example, install glibc-devel on Linux to get the required /usr/lib/crt1.o library and /usr/include/stdio.h include files. o Binutils and gcc pairing Many OpenPKG packages can be build using an arbitrary linker and compiler. Some people prefer system or 3rd party development tools. You must ensure that ld(1) and gcc(1) work in tandem and both come from the same vendor. Mixing such fundemental build tools in an incompatible fashion produces unpredictable (and usually undesirable) results. Like earlier releases, OpenPKG 2.2 comes with binutils-2.14, because the corresponding gcc package is not completely compatible with the binutils-2.15 vendor distribution. o Command problems and workarounds Some command sequences, notably 'openpkg index' and 'openpkg build', do not work properly unless LANG=C is set in the shell environment. This erroneous behaviour appears in RedHat Fedora Core 2 and RedHat Enterprise Linux 3. It may affect SuSE distributions as well. o Broken binary bootstrap on SuSE 9.1 using NIS The SuSE 9.1 pwconv(8) command from the SuSE native pwdutils-2.6.3-3 and pwdutils-2.6.4-2.1 packages is broken. When the last line of /etc/passwd contains a plus character ('+') as required for 'compat' mode in /etc/nsswitch.conf, the OpenPKG bootstrap fails with an error 'pwconv: Error trying to get data for `+''. This is the default SuSE password configuration when NIS is activated during system installation. To work around the problem temporarily remove the offending line from /etc/passwd. Upgrade from OpenPKG-2.1-RELEASE to OpenPKG-2.2-RELEASE ======================================================= o No known issues New in OpenPKG-2.1-RELEASE ========================== o Latest Vendor Packages as of Jun 2004 o Supported Platforms (HPUX, NetBSD, Mandrake) o New openpkg-tools package provides contributor environment and tool chain integration o Dropped legacy commands o Debian 3.1 (sarge) install-info issue solved o Some workarounds for known OpenPKG 2.0 issues still apply o Slideset for admins and developers and flyer for managers available o Vendor Refresh Release This OpenPKG release is a refresh to its predecessor containing the latest vendor packages. o Supported Platforms OpenPKG 2.1 classifies the following platforms "supported" which means all CORE+BASE+PLUS sources work and CORE+BASE binaries are available. ix86-debian3.0 Debian GNU/Linux 3.0 ix86-fedora2 RedHat Fedora Core 2 ix86-freebsd4.10 FreeBSD 4.10-STABLE ix86-freebsd5.2 FreeBSD 5.2-CURRENT ix86-rhel3 RedHat Enterprise Linux 3 ES ix86-solaris9 Sun Solaris 9/x86 ix86-suse9.1 SuSE Linux 9.1 sparc64-solaris8 Sun Solaris 8 sparc64-solaris9 Sun Solaris 9 (Forte-C) OpenPKG 2.1 classifies support for the following platforms "tentative" which means all CORE sources work, most BASE+PLUS sources work and only CORE binaries available. alpha-freebsd5.2 FreeBSD 5.2-CURRENT hppa-hpux11.11 HP UX 11.11 ix86-debian3.1 Debian GNU/Linux 3.1-pre ix86-gentoo1.4.16 Gentoo Linux 1.4.16 ix86-mandrake10.0 Mandrake Linux 10 ix86-netbsd1.6.2 NetBSD 1.6.2 ix86-solaris10 Sun Solaris 10/x86 sparc64-netbsd1.6.2 NetBSD 1.6.2 sparc64-solaris10 Sun Solaris 10 OpenPKG 2.1 classifies support for the following platforms "obsolete" which means all CORE sources work, most BASE+PLUS sources work and only CORE binaries available. ix86-rhl9 RedHat Linux 9 ix86-suse9.0 SuSE Linux 9.0 sparc64-solaris2.6 Sun Solaris 2.6 OpenPKG 2.1 does not come with binaries for other platforms. No binaries are provided for PLUS packages. Updates are only available as source packages. Packages with a class different from CORE, BASE, PLUS are not part of the release. They are only available as CURRENT source packages. o Dropped legacy commands The official command line user interface to rpm is the %{l_prefix}/bin/openpkg command multiplexer with the "rpm" subcommand. The direct execution of %{l_prefix}/bin/rpm is no longer available. For more information see "%{l_prefix}/bin/rpm and %{l_prefix}/bin/rpm2cpio deprecated" in the OpenPKG 2.0 section. As a consequence any tool that expects direct access to the vanished %{l_prefix}/bin/rpm will fail. This includes outdated scripts inside OpenPKG, too, i.e. running 1.3 "perl-openpkg" using a 2.1 "openpkg" (bootstrap) will fail. The solution is to obey the rule under "General Notes about Upgrading" at the very top of this document reading: You cannot skip a version. The workaround is to create a tiny dirty wrapper script, the gone code can be reviewd as a hint at http://cvs.openpkg.org/chngview?cn=16838 o Debian 3.1 (sarge) install-info issue solved The hack described for OpenPKG 2.0 is no longer required. o Some workarounds for known OpenPKG 2.0 issues still apply - issue with RedHat FC1 and EL3 - issue with RedHat Enterprise Linux 3 nptl-devel package - issue with RedHat Fedora Core 1 /proc/sys/kernel/exec-shield o new openpkg-tools package This new package provides tools for administrators and developers and contains code known from the former openpkg-tool package. o packages dropped from release - autogen downgraded to EVAL because of portability problems, available from CURRENT o building from source Building packages including the bootstrap from source requires a working and complete development environment. It must be made up of the tools make(1), a linker, C compiler and some important system libraries and header files. Many Unix vendors offer that tools as part of their OS but unlike the BSD world in the Linux and Solaris world they are often optional, sometimes even additional purchases. Note that you may choose to use OpenPKG binary packages to satisfy most of these requirements, i.e. by installing openpkg, make, binutils and gcc. Be aware that no OpenPKG package will offer system libraries and header files, i.e. you must install glibc-devel on Linux to get the required /usr/lib/crt1.o library and /usr/include/stdio.h include. o binutils and gcc pairing Many OpenPKG packages can be build using an arbitrary linker and compiler. Some people prefer system or 3rd party development tools. You must ensure that ld(1) and gcc(1) work in tandem and both come from the same vendor. Intermixing that stuff will produce unpredictable results and break builds, i.e. OpenPKG 2.0 and 2.1 come with binutils-2.14 because their sibling gcc is known to be poisoned when the already existing and shipping Linuxish binutils-2.15 package is used. o broken binary bootstrap on SuSE 9.1 using NIS The SuSE 9.1 pwconv(8) command from their shipping pwdutils-2.6.3-3 and update pwdutils-2.6.4-2.1 packages is broken and spits out error 'pwconv: Error trying to get data for `+'' when the last line of /etc/passwd reads '+::::::' which is required for "compat" mode in /etc/nsswitch.conf and the default when NIS is activated during system installation. This inhibits successful installation of a OpenPKG binary bootstrap. To work around the problem temporarily remove the offending line from /etc/passwd. Upgrade from OpenPKG-2.0-RELEASE to OpenPKG-2.1-RELEASE ======================================================= O No known issues. New in OpenPKG-2.0-RELEASE ========================== o Major Release o Bootstrap Package ("openpkg"): - upgraded from RPM 4.0.4 to RPM 4.2.1 - new RPM DB format (upgrade from Berkeley DB 3.2 to 4.1) - new RPM DB administration utility (--db-{build,rebuild,cleanup,fixate}) - new RPM DB locking on network storage requires NFS lockd or locking needs to be disabled - RPM now is able to verify package signatures internally (via BeeCrypt) - RPM now provides "rpm -e --repackage" functionality - more accurate removal of all temporary build files - new "rpm -bb --short-circuit" - "rpm -bs" no longer requires source dependencies - new "%track" section replaces vc.* files - new "%test" section test [unused, reserved for future use] for quality assurance - new "Class:" header (for CORE,BASE,PLUS,EVAL,JUNK tagging) - new platform identification (via our GNU shtool 2.0's new 'platform' command) - platform and instance identification via UUID (via our new OSSP uuid toolkit) - new convenience CLI options "--with " and "--without " - RPM now internally uses transactions - RPM now is able to perform concurrently (allowing RPM to be called from RPM) - many of the CORE packages are OpenPKG "branded" now - the RPM C API is installed and available via "rpm-config" utility - new --tar option eases extraction of shell archive ingredients aiding recovery activities o Upgraded to Perl 5.8.3 and completely worked off Perl module packaging (perl-openpkg) o Completely worked off Run-Command (RC) facility now also for PLUS and EVAL class packages. o All packages were upgraded to their latest vendor versions as of YX-Feb-2004. o Increased release class packages from 400 (in OpenPKG 1.3) to now 473 o Thousands of packaging bugfixes and vendor source code portations o Major Release OpenPKG release numbering is driven by technical enhancements and release engineering requirements, not by marketing. The technical change is that we now have RPM 4.2.1 under the hood. The typical administrator knowing OpenPKG 1.3 will experience a flat learning curve when he starts working with the new 2.0 release. o Supported Platforms OpenPKG 2.0 fully supports the following platforms and provides binaries of packages from the CORE+BASE classes. ix86-freebsd4.9 FreeBSD 4.9 ix86-freebsd5.2 FreeBSD 5.2 ix86-debian3.0 Debian GNU/Linux 3.0 ix86-debian3.1 Debian GNU/Linux 3.1 ix86-fedora1 Red Hat Fedora Core 1 ix86-rhel3 Red Hat Enterprise Linux 3 ix86-suse9.0 SuSE Linux 9.0 ix86-solaris9 Sun Solaris 9 sparc64-solaris8 Sun Solaris 8 sparc64-solaris9 Sun Solaris 9 ix86-solaris10 Sun Solaris 10 OpenPKG 2.0 also supports the following platforms and provides binaries of packages from the CORE class. ix86-debian2.2 Debian GNU/Linux 2.2 ix86-rhl9 Red Hat Linux 9 ix86-suse8.2 SuSE Linux 8.2 ix86-gentoo1.4.3 Gentoo Linux 1.4 sparc64-solaris2.6 Sun Solaris 2.6 OpenPKG 2.0 does not come with binaries for other platforms. No binaries are provided for PLUS packages. Updates are only available as source packages. Packages with a class different from CORE, BASE, PLUS are not part of the release. They are only available as CURRENT source packages. o new prefix and tag for binary packages OpenPKG 2.0 comes with binaries build for /openpkg prefix and openpkg tag. Previously they were build for /cw prefix and locationid (the predecessor of tag) cw. This is meaningless to the admin who never uses binary packages according to OpenPKG recommendation. For those installing binary packages from OpenPKG version 2.0 and later, attention should be given to this change. For example, scripts installing OpenPKG 2.0 binary packages and later expecting the resulting software to be available in '/cw' will now fail. o new command line interface The official command line user interface to rpm is the new %{l_prefix}/bin/openpkg command multiplexer with the "rpm" subcommand. The direct execution of %{l_prefix}/bin/rpm is deprecated. For more information see "%{l_prefix}/bin/rpm and %{l_prefix}/bin/rpm2cpio deprecated". o new RPM header - Class: header to specify status, one of CORE,BASE,PLUS,EVAL,JUNK See http://cvs.openpkg.org/chngview?cn=14532 o new RPM sections - %track contains version tracking information and replaces vc.* files previously stored in separate files in the release engineering area of the CVS repository. $ %{l_prefix}/bin/openpkg rpm --track - %test [unused, reserved for future use] for quality assurance. $ %{l_prefix}/bin/openpkg rpm --test o new tag feature In OpenPKG 2.0, binaries are named "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}-%{OS}-%{tag}.rpm" where the tag is user configurable. It tag can be specified during bootstrap using the new --tag=xxx option. It is then used as a default for every binary package being build. It can be overridden for every individual binary package by specifying the --tag=xxx option on a --rebuild or -bb or -ba command line. See http://cvs.openpkg.org/chngview?cn=14312 The tag is even more powerful as it is not a constant string but a macro that is expanded during the build process. This allows for creation of dynamic tags. More precisely from a users perspective the tag is actually a tag format (tagfmt). To enhance convenience for the user some predefined combinations or macros are provided which can be specified using their name in angle brackets. The default tagfmt for fresh installs is which is a improved version of the previous %{l_location} known from OpenPKG v1.x. Predefined tagfmt's (just omit the %l_tag_fmt_ prefix) are: - %l_tag_fmt_compat location id (compatible to OpenPKG v1.x) - %l_tag_fmt_loc location id (improved) - %l_tag_fmt_opt UUID based on with_xxx options - %l_tag_fmt_uuid UUID - %l_tag_fmt_time date and time of build - %l_tag_fmt_user user doing the build - %l_tag_fmt_host host that run the build The predefined tagfmt's are not limits, just examples. Use any combination of predefined tags, RPM macros and constants to create a tagfmt, i.e. "binaryat