History log of /haiku/src/bin/pkgman/Jamfile
Revision Date Author Comments
# 95f94193 05-Jun-2023 Humdinger <humdingerb@gmail.com>

pkgman: add command to show summary and description

Add command "info" to show the summary and description of a package
in a a remote repository.

Change-Id: I254eff3bb6401c90a394a483cd684134ead0a9a3
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6516
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: waddlesplash <waddlesplash@gmail.com>


# 8028ede7 15-Jan-2016 Rene Gollent <rene@gollent.com>

Build: Add architecture rule for libshared.a.

- As suggested by Ingo, add libshared.a to the architecture name map.
This allows it to be linked by its short name like other frequently
used libraries.
- Adjust all Jamfiles referencing the lib accordingly.


# dd15db95 25-Oct-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add --debug option for most commands

* Add CommonOptions class and add an instance to Command. It supports a
debug level.
* full-sync, install, search, uninstall, update: Add option --debug.
This allows getting some debug output from the solver in cases where
the result seems weird.


# 220d0402 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# 6ef57ae2 25-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add full-sync command

* BSolver/LibsolvSolver: Add FullSync() method. It uses libsolv's
SOLVER_DISTUPGRADE mode.
* BPackageManager: Add FullSync() using the new solver mode.
* pkgman: Add full-sync command.

The new command is similar to the update command without arguments, just
more aggressive, allowing downgrading or even removal of packages, to
match the state of the repositories. Just like "update" it doesn't work
properly yet.


# 5df58b52 30-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Move TextTable from pkgman to libshared


# bf5786eb 27-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman search: Add -D/--details

* Add a detailed listing mode (-D/--details), which prints a table with
repository/installation location name, package name, package version,
package architecture.
* Make the normal listing more compact. Now there's only one row per
package. The "Installed" column has been replaced by "Status" which
displays if/where the package is installed and whether it matches the
repository version.


# 83462cc2 31-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Refactor reusable pkgman code into libpackage

* Move RepositoryBuilder class to libpackage and add B* prefix to name.
* Pull BPackageManager class out of PackageManager and move to
libpackage. The base class is customizable via three handler objects
responsible for transaction handling, request execution, respectively
user interaction.
* Reorganize _ApplyPackageChanges(): Now we first prepare the
transactions for all affected installation locations (downloading
files etc.) and then commit them.


# 90f9f139 27-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman install: Add base package support

If any of the packages to install has requires a base package, that is
installed in a more general installation location, we copy the package
to the target installation location. Ideally we'd hard-link, but BFS
doesn't support that. Symlinks would be a small nightmare to maintain.

We might want to choose the installation location intelligently
depending on the base package requirement -- e.g. install curl_devel in
system rather than common, since curl is installed in system -- so we
can avoid duplicating packages.


# 464ee61f 17-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: link against needed libstdc++


# a5999f6f 21-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add "update" command


# df2685d8 20-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add "uninstall" command


# 3ac0de3b 20-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Refactoring -> PackageManager

Move common and reusable functionality from "search" and "install" to
new PackageManager class.


# 0d50fa87 12-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add beginnings of the "install" command

So far it only solves the dependencies and prints the result. No
problem handling, no actual installation.


# 38e528bb 11-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: C++-ify the command handling

There's now a Command class that must be derived and registered with
a CommandManager, all simplified by a REGISTER_COMMAND macro. That gets
rid of the print_command_usage_and_exit() function copy for every
command, moves the short usage texts to the command implementations,
and avoids any repetition of the command name. When implementing a new
command only a new source file needs to be created, nothing else needs
to be touched.


# dd46d981 11-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add "search" command


# 5776551d 10-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Move some classes into own file for reuse

Namely RepositoryBuilder and PackageInfoErrorListener.


# 19f3eaae 03-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Simplify and rename resolve-build-dependencies

* Now it only gets a package (info) file and a single list of
repository directories, optionally with priority, and resolves the
package's dependencies. The more complex two resolving steps it did
before can just as well be done by haikuporter, and this way the
command is more flexible.
* Rename to resolve-dependencies.
* Some TODOs still remain.


# 1acf2be8 02-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add command resolve-build-dependencies

This is a service command for haikuporter. It resolves the dependencies
for a package to be built and lists them, so that haikuporter can
prepare the build environment accordingly.

The implementation isn't quite finished yet. Currently the packages are
printed only with name and version, while it would probably be more
helpful to print the path of the package file. Also, the package itself
(respectively a dummy package) is printed as well.


# 733c783d 25-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

more work on package kit:
* rip BRepositoryHeader out of BRepositoryConfig and add support
for it to BRepositoryCache
* implement repository removal
* some minor cleanups


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40290 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7d7ed9bf 25-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

Mostly style-related changes to package kit:
* drop 'Haiku' namespace
* rename 'Package' namespace to 'BPackageKit'
* renamed all public classes to begin with a 'B'
* renamed BPackageKit::Roster to BPackageKit::BPackageRoster to not
clash with the BRoster from the application kit.
* fix some instances of public headers including private ones

Some functional changes, too:
* JobQueue now removes and deletes dependants of failed jobs
automatically
* JobQueue supports waiting for jobs to become runnable
* added a couple of InitCheck() methods where they make sense
and invoke those in users of these classes



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40287 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 35edda8f 24-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

* more work on the package kit, repositories can now be added and
refreshed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11a4ecfd 22-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

* added support for interactive decisions to package kit and pkgman


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40268 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 500bb630 21-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

* WIP-commit of the first parts of the package kit and the pkgman
(console-)tool


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd15db954b893bd727a4ba5972bd2019d673f074 25-Oct-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add --debug option for most commands

* Add CommonOptions class and add an instance to Command. It supports a
debug level.
* full-sync, install, search, uninstall, update: Add option --debug.
This allows getting some debug output from the solver in cases where
the result seems weird.


# 220d04022750f40f8bac8f01fa551211e28d04f2 31-Jul-2014 Oliver Tappe <zooey@hirschkaefer.de>

Use libstdc++, libsupc++ and libgcc from gcc_syslibs.

* Instead of faking libstdc++.so from libstdc++.a, use libstdc++.so
from the gcc_syslibs build feature for everything except x86_gcc2.
* Use libgcc_s.so from the gcc_syslibs build feature for everything but
x86_gcc2 (which still carries libgcc as part of libroot.so).
* Drop filtering of libgcc objects for libroot, as that is no longer
necessary since we're only using libgcc-as-single-object for libroot
with x86_gcc2, where the filtered object file doesn't exist. Should
the objects that used to be filtered cause any problems as part of
libgcc_s.so, we can always filter them as part of the gcc build.
* Use libsupc++.so from the gcc_syslibs build feature for everything but
x86_gcc2.
* Adjust all Jamfiles accordingly.
* Deactivate building of faked libstdc++.so for non-x86-gcc2. For
x86_gcc2, we still build libstdc++.so from the sources in the Haiku
source tree as part of the Haiku build .
* Put gcc_syslibs package onto the image, when needed.


# 6ef57ae2a96085ccb56e356e21e652cc11777ac0 25-Jan-2014 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add full-sync command

* BSolver/LibsolvSolver: Add FullSync() method. It uses libsolv's
SOLVER_DISTUPGRADE mode.
* BPackageManager: Add FullSync() using the new solver mode.
* pkgman: Add full-sync command.

The new command is similar to the update command without arguments, just
more aggressive, allowing downgrading or even removal of packages, to
match the state of the repositories. Just like "update" it doesn't work
properly yet.


# 5df58b522b52d5914bf8b49fc47ff46fde56877f 30-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Move TextTable from pkgman to libshared


# bf5786ebd6d585459623cb9b38df79d05488c94a 27-Nov-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman search: Add -D/--details

* Add a detailed listing mode (-D/--details), which prints a table with
repository/installation location name, package name, package version,
package architecture.
* Make the normal listing more compact. Now there's only one row per
package. The "Installed" column has been replaced by "Status" which
displays if/where the package is installed and whether it matches the
repository version.


# 83462cc28d356d564a818c1d34605ed2ec83f274 31-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

Refactor reusable pkgman code into libpackage

* Move RepositoryBuilder class to libpackage and add B* prefix to name.
* Pull BPackageManager class out of PackageManager and move to
libpackage. The base class is customizable via three handler objects
responsible for transaction handling, request execution, respectively
user interaction.
* Reorganize _ApplyPackageChanges(): Now we first prepare the
transactions for all affected installation locations (downloading
files etc.) and then commit them.


# 90f9f1392b5bac87c6333ec9627eda462035617d 27-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman install: Add base package support

If any of the packages to install has requires a base package, that is
installed in a more general installation location, we copy the package
to the target installation location. Ideally we'd hard-link, but BFS
doesn't support that. Symlinks would be a small nightmare to maintain.

We might want to choose the installation location intelligently
depending on the base package requirement -- e.g. install curl_devel in
system rather than common, since curl is installed in system -- so we
can avoid duplicating packages.


# 464ee61f45db818926c18542bc7497e5d5769578 17-Aug-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: link against needed libstdc++


# a5999f6ff7fbadb4f8cc94f5e4283dacbf231a59 21-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add "update" command


# df2685d885f3b940bc04b1cf5f39511ce6750ddf 20-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add "uninstall" command


# 3ac0de3b1fac18912d6cb7758b502468e3802ee9 20-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Refactoring -> PackageManager

Move common and reusable functionality from "search" and "install" to
new PackageManager class.


# 0d50fa87ec909d6d81190d187596163264c59d94 12-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add beginnings of the "install" command

So far it only solves the dependencies and prints the result. No
problem handling, no actual installation.


# 38e528bbc1c368456c8b8a94d6f21081934cc4f9 11-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: C++-ify the command handling

There's now a Command class that must be derived and registered with
a CommandManager, all simplified by a REGISTER_COMMAND macro. That gets
rid of the print_command_usage_and_exit() function copy for every
command, moves the short usage texts to the command implementations,
and avoids any repetition of the command name. When implementing a new
command only a new source file needs to be created, nothing else needs
to be touched.


# dd46d9816332a8936534aeeb26613c5269b75a6a 11-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add "search" command


# 5776551d3dfa5c88bdebd65fd211aaebbb91e525 10-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Move some classes into own file for reuse

Namely RepositoryBuilder and PackageInfoErrorListener.


# 19f3eaaee692a5edc59cb453540489a132c43b69 03-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Simplify and rename resolve-build-dependencies

* Now it only gets a package (info) file and a single list of
repository directories, optionally with priority, and resolves the
package's dependencies. The more complex two resolving steps it did
before can just as well be done by haikuporter, and this way the
command is more flexible.
* Rename to resolve-dependencies.
* Some TODOs still remain.


# 1acf2be80dd9d6409fd3a4f6d304896fb9aeb286 02-Apr-2013 Ingo Weinhold <ingo_weinhold@gmx.de>

pkgman: Add command resolve-build-dependencies

This is a service command for haikuporter. It resolves the dependencies
for a package to be built and lists them, so that haikuporter can
prepare the build environment accordingly.

The implementation isn't quite finished yet. Currently the packages are
printed only with name and version, while it would probably be more
helpful to print the path of the package file. Also, the package itself
(respectively a dummy package) is printed as well.


# 733c783dc9cce693795e43d5bfec7b5ce4fd32f8 25-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

more work on package kit:
* rip BRepositoryHeader out of BRepositoryConfig and add support
for it to BRepositoryCache
* implement repository removal
* some minor cleanups


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40290 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7d7ed9bf4bdd7bc31e31143c402c4f96a324b30b 25-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

Mostly style-related changes to package kit:
* drop 'Haiku' namespace
* rename 'Package' namespace to 'BPackageKit'
* renamed all public classes to begin with a 'B'
* renamed BPackageKit::Roster to BPackageKit::BPackageRoster to not
clash with the BRoster from the application kit.
* fix some instances of public headers including private ones

Some functional changes, too:
* JobQueue now removes and deletes dependants of failed jobs
automatically
* JobQueue supports waiting for jobs to become runnable
* added a couple of InitCheck() methods where they make sense
and invoke those in users of these classes



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40287 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 35edda8f0befb8667b593e2314f6d555a7db44d8 24-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

* more work on the package kit, repositories can now be added and
refreshed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11a4ecfd82c31ded8ba33ad2ac5f5a6538b7fa40 22-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

* added support for interactive decisions to package kit and pkgman


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40268 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 500bb6305c339017d7d7302dc1f63ac90443f267 21-Jan-2011 Oliver Tappe <zooey@hirschkaefer.de>

* WIP-commit of the first parts of the package kit and the pkgman
(console-)tool


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40261 a95241bf-73f2-0310-859d-f6bbb57e9c96