History log of /haiku/src/apps/packageinstaller/PackageItem.cpp
Revision Date Author Comments
# aec3e63e 25-Sep-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

Revert "LegacyPackageInstaller: Override fPathType when the path begins with /boot/."

This reverts commit 8cf0752f1bde487b7b78c6f375d22181023e32c2.
This reverts commit af3057423c2951d7a1652cf7383b2fafe12872b6.

This change fixed one package, and broke everything else. Please find a
proper fix and actually test it before committing.

Fixes #12909


# af305742 23-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

LegacyPackageInstaller: Correct previous commit.

The test in the previous commit had a totally flawed invocation of strcmp().
I probably shouldn't attempt to write C code without consulting the manual.

Even if it had worked, it would have worked on too many cases, including
some volume paths. So I reordered the if statement and added it in there.


# 8cf0752f 23-Jul-2016 Augustin Cavalier <waddlesplash@gmail.com>

LegacyPackageInstaller: Override fPathType when the path begins with /boot/.

Fixes installation of the RefLine pkg. I don't know why, but it seems to
specify the path as a P_INSTALL_PATH.


# 9bec480a 31-Jul-2015 Augustin Cavalier <waddlesplash@gmail.com>

PackageInstaller: Fix the build.

Previously, <stdlib.h> wasn't included (which is where environ is),
but Axel changed some Be API headers and now it is indirectly included,
which broke the build.

Fixes #12263.


# 3884aaf0 27-Apr-2015 Augustin Cavalier <waddlesplash@gmail.com>

PackageInstaller: when zlib fails, print the error message.


# 41bfed9f 10-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

PackageInstaller: rewrite /boot/beos/system to /boot/system

Fixes #10603.


# c3a07a5a 28-May-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Added -v/--verbose option

It enables just a few printf()s in PackageItem.cpp.
I went with a quick solution using a global variable
instead of using/writing some nice logging framework which
could even generate install logs... but it helps in tracking
down some package problems without first having to uncomment
some printf()s...


# ecf119cc 28-May-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Fix Paladin installation

... and perhaps more packages build for pre-PM Haiku.
* Restore the original path rewriting of "/boot/system"
alongside rewriting "/boot/beos/system".
* Rewrite "/boot/apps" in install scripts. This one fits
the existing TODO that the rewriting should not use
hard-coded replacement paths.
* Fixes ticket #10875


# 838c4c87 21-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Fix rewriting paths to system

In BeOS, there was no /boot/system, there as /boot/beos/system. If memory
serves. Fixes install location of GoBe Translators.


# 0aa2c1fc 20-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Fixed more problems with working directories

I've encountered three different ways of specifying the working directory
for install scripts: Relative to target folder, relative to install folder
and absolute. At least those three now work...


# 1835c16d 18-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Disable debug output of scripts


# 224641c4 17-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

Install scripts can define a NULL path...

... don't try to call InitPath() then.
Also replace more hard-coded paths. Added TODO about refactoring this
code and not using hard-coded paths myself, which is no better than these
scripts.


# 3f5014ec 16-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Run install scripts in the correct directory

* From debugging with the Gobe and Moho installer, scripts define which
folder to run them from. The PackageInstaller is supposed to run the script
in that working directory. The parser seems to have the correct folder in
"installPath" when adding the script as PackageItem, but that code is rather
horrible. I've changed it so PackageScript items also set the path, use
InitPath() to obtain the final working directory and set it before running
the script.
* Both Moho and Gobe create the Deskbar link from that script, the folder
is rewritten in the script via ReplaceAll().
* Correctly running the script makes a bug visible: Dynamically added files
in the install location by these scripts are not removed when uninstalling
the package. When re-installing a package, it is first uninstalled and this
currently gives an error for both Moho and Gobe, since they create some
links in these scripts which never worked before. To install again, the
install folder needs to be deleted manually.
* Some cleanup along the way... sorry.


# be94359c 11-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

PackageItem: Fixed rewriting item paths

* The version of BString::Replace() that was used takes the offset at which
replacing should start, not the number of replacements. So did this ever
work? Use ReplaceFirst() instead.
* Address the performance issues which Pawel commented on, plus some more.
* I've left some debug output in the code (commented out), since I want to
work on this some more. For example, I noticed that GoBe Productive puts
files into /boot/beos/...


# c45fe1f8 27-Jan-2014 Puck Meerburg <puck@puckipedia.nl>

PackageInstaller: Dynamically replace /boot/system with the system non-packaged dir, same with ~/config


# 10dbe57e 13-Jul-2013 Murai Takashi <tmurai01@gmail.com>

PackageItem::ParseAttribute(), use delete[] for deleing *attrData.

Signed-off-by: Oliver Tappe <zooey@hirschkaefer.de>


# 546208a5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# abc9871a 20-Aug-2010 Jérôme Duval <korli@users.berlios.de>

fixed warnings with debug enabled


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


# 6aaaa90f 12-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

CID 1460,1461,1462: delete[] must be used to delete arrays.


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


# 4eb0cbb0 07-May-2010 Matt Madia <mattmadia@gmail.com>

Updated TR_CONTEXT to be B_TRANSLATE_CONTEXT, relating to #5408.


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


# f51cdb44 05-May-2010 Stephan Aßmus <superstippi@gmx.de>

Remembered the rule wrong about how many blank lines between copyright and
headers.


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


# 091440e0 05-May-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Jorma Karvonen: Localization of the PackageInstaller. Thanks a lot!
Contains small coding style corrections by myself. Closes ticket #5907.


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


# 9ff2343b 01-Apr-2010 Jérôme Duval <korli@users.berlios.de>

Applied patch by sil2100 that enables handling of script files (bug #3762)


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


# fc11b80c 06-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by sil2100 that basically adds a "Yes to all" button, see
ticket #4059. I fixed a few style violations, though. Thanks!
* Automatic whitespace cleanup.


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


# 78c00a4a 11-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by sil2001 that fixes bug #3666 (handling of existing symlinks).
* Refactored PkgItem classes, and pulled out a PackageItem base class. Renamed
other classes to Package*.
* The ItemExists() method should really get a "Apply this choice to all files"
kind of option...
* Style cleanups.


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


# c0f67482 16-Mar-2009 Jérôme Duval <korli@users.berlios.de>

* fixed symlink creation and symlink attributes
* more debug output


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


# 8f29cb48 15-Mar-2009 Jérôme Duval <korli@users.berlios.de>

* added debug output
* don't create the directory with the link name, only the parent


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


# 2a8ffa88 15-Feb-2009 Jérôme Duval <korli@users.berlios.de>

* Break parsing loop if PkgA is encountered. This helps with QEmu pkg.


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


# c9e62886 23-Sep-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed every (hopefully) CID cases of delete where delete[] should have been used. CID 122, 123, 124, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 144, 147, 148, 149, 150

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


# 44f919da 12-Oct-2007 Ryan Leavengood <leavengood@gmail.com>

Adding Łukasz Zemczak's package installer to our tree. This was his Google
Summer of Code project. Thanks for your work Łukasz and I hope we can see
more work from you.

Still to do:
- Create an icon.
- Add pkg files to the MIME database with PackageInstaller as the default
handler. The rdef here has the MIME type name for the pkg format should
anyone else choose to add it :)
- Support for running scripts included with packages.
- Testing various different packages.
- Fixing problems in the Haiku GUI layout system which affect the code used
for various parts of the installer GUI (please bear with the commented out
code for now.)
- Adding this to the image.

Tomorrow I will add Łukasz's InstalledPackages utility which can be used to
view installed packages and uninstall them.


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


# 9bec480a7d3a4a38ad141e746841386834d98925 31-Jul-2015 Augustin Cavalier <waddlesplash@gmail.com>

PackageInstaller: Fix the build.

Previously, <stdlib.h> wasn't included (which is where environ is),
but Axel changed some Be API headers and now it is indirectly included,
which broke the build.

Fixes #12263.


# 3884aaf0c79e37435f3084d500eb4c989029f94f 27-Apr-2015 Augustin Cavalier <waddlesplash@gmail.com>

PackageInstaller: when zlib fails, print the error message.


# 41bfed9f20d1fad36afdc6781dab2007402c3711 10-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

PackageInstaller: rewrite /boot/beos/system to /boot/system

Fixes #10603.


# c3a07a5aedcf284c361a5dd2fd3247e60b00b8f8 28-May-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Added -v/--verbose option

It enables just a few printf()s in PackageItem.cpp.
I went with a quick solution using a global variable
instead of using/writing some nice logging framework which
could even generate install logs... but it helps in tracking
down some package problems without first having to uncomment
some printf()s...


# ecf119cc17eea533676a28643bc2a3a30ce40f09 28-May-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Fix Paladin installation

... and perhaps more packages build for pre-PM Haiku.
* Restore the original path rewriting of "/boot/system"
alongside rewriting "/boot/beos/system".
* Rewrite "/boot/apps" in install scripts. This one fits
the existing TODO that the rewriting should not use
hard-coded replacement paths.
* Fixes ticket #10875


# 838c4c87790af97ef53e3a8ece82d5e66abe2b8b 21-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Fix rewriting paths to system

In BeOS, there was no /boot/system, there as /boot/beos/system. If memory
serves. Fixes install location of GoBe Translators.


# 0aa2c1fca32969f649714d2bf93bfc6ef91926a0 20-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Fixed more problems with working directories

I've encountered three different ways of specifying the working directory
for install scripts: Relative to target folder, relative to install folder
and absolute. At least those three now work...


# 1835c16d8e90b319794a55b441d77b321a2a7643 18-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Disable debug output of scripts


# 224641c4b5cd7489167bc06d611f09db2cfe12df 17-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

Install scripts can define a NULL path...

... don't try to call InitPath() then.
Also replace more hard-coded paths. Added TODO about refactoring this
code and not using hard-coded paths myself, which is no better than these
scripts.


# 3f5014ec86d210bd1d63f14c7640d1c68b7d8684 16-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

PackageInstaller: Run install scripts in the correct directory

* From debugging with the Gobe and Moho installer, scripts define which
folder to run them from. The PackageInstaller is supposed to run the script
in that working directory. The parser seems to have the correct folder in
"installPath" when adding the script as PackageItem, but that code is rather
horrible. I've changed it so PackageScript items also set the path, use
InitPath() to obtain the final working directory and set it before running
the script.
* Both Moho and Gobe create the Deskbar link from that script, the folder
is rewritten in the script via ReplaceAll().
* Correctly running the script makes a bug visible: Dynamically added files
in the install location by these scripts are not removed when uninstalling
the package. When re-installing a package, it is first uninstalled and this
currently gives an error for both Moho and Gobe, since they create some
links in these scripts which never worked before. To install again, the
install folder needs to be deleted manually.
* Some cleanup along the way... sorry.


# be94359ce4b915a7cd77b2959f462a6eb5d4eec9 11-Feb-2014 Stephan Aßmus <superstippi@gmx.de>

PackageItem: Fixed rewriting item paths

* The version of BString::Replace() that was used takes the offset at which
replacing should start, not the number of replacements. So did this ever
work? Use ReplaceFirst() instead.
* Address the performance issues which Pawel commented on, plus some more.
* I've left some debug output in the code (commented out), since I want to
work on this some more. For example, I noticed that GoBe Productive puts
files into /boot/beos/...


# c45fe1f8f71d44eaeb15ffa735ebba42e706a98a 27-Jan-2014 Puck Meerburg <puck@puckipedia.nl>

PackageInstaller: Dynamically replace /boot/system with the system non-packaged dir, same with ~/config


# 10dbe57ef365b6afdba3f813e6c65e7bbd53fe64 13-Jul-2013 Murai Takashi <tmurai01@gmail.com>

PackageItem::ParseAttribute(), use delete[] for deleing *attrData.

Signed-off-by: Oliver Tappe <zooey@hirschkaefer.de>


# 546208a53940a26c6379c48a7854ade1a8250fc5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# abc9871ae1a36e92dd19e9e0f34785c5fb2dd96b 20-Aug-2010 Jérôme Duval <korli@users.berlios.de>

fixed warnings with debug enabled


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


# 6aaaa90f38ae134d0a2d697a2ced13a770c9c44c 12-Aug-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

CID 1460,1461,1462: delete[] must be used to delete arrays.


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


# 4eb0cbb044cf538f18c0d252934a5bcaa33bfd34 07-May-2010 Matt Madia <mattmadia@gmail.com>

Updated TR_CONTEXT to be B_TRANSLATE_CONTEXT, relating to #5408.


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


# f51cdb4436c3d03c13683d120f6c677dfca616c1 05-May-2010 Stephan Aßmus <superstippi@gmx.de>

Remembered the rule wrong about how many blank lines between copyright and
headers.


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


# 091440e0048f51f8708bece1a8aebeae3d1f2d36 05-May-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Jorma Karvonen: Localization of the PackageInstaller. Thanks a lot!
Contains small coding style corrections by myself. Closes ticket #5907.


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


# 9ff2343b35fc95500601a2cb77719dd591e7f423 01-Apr-2010 Jérôme Duval <korli@users.berlios.de>

Applied patch by sil2100 that enables handling of script files (bug #3762)


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


# fc11b80c6c3a2d9f1a52014ab1341a9923d74e8f 06-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by sil2100 that basically adds a "Yes to all" button, see
ticket #4059. I fixed a few style violations, though. Thanks!
* Automatic whitespace cleanup.


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


# 78c00a4a53afcaeeebb337e5601dd8c1f70308e6 11-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by sil2001 that fixes bug #3666 (handling of existing symlinks).
* Refactored PkgItem classes, and pulled out a PackageItem base class. Renamed
other classes to Package*.
* The ItemExists() method should really get a "Apply this choice to all files"
kind of option...
* Style cleanups.


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


# c0f674824cf7f849b9a0b4964520ff36d399703d 16-Mar-2009 Jérôme Duval <korli@users.berlios.de>

* fixed symlink creation and symlink attributes
* more debug output


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


# 8f29cb488f0156eb86094d23d1cabc0ee782b477 15-Mar-2009 Jérôme Duval <korli@users.berlios.de>

* added debug output
* don't create the directory with the link name, only the parent


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


# 2a8ffa8805452ab920a2c7d59be214ca6ffb500d 15-Feb-2009 Jérôme Duval <korli@users.berlios.de>

* Break parsing loop if PkgA is encountered. This helps with QEmu pkg.


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


# c9e6288649ba36ff887f52fb62d4cd557fa9ef34 23-Sep-2008 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fixed every (hopefully) CID cases of delete where delete[] should have been used. CID 122, 123, 124, 125, 126, 127, 128, 129, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 142, 143, 144, 147, 148, 149, 150

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


# 44f919da9afa25ffd54e29c6f64cfba20e41f34f 12-Oct-2007 Ryan Leavengood <leavengood@gmail.com>

Adding Łukasz Zemczak's package installer to our tree. This was his Google
Summer of Code project. Thanks for your work Łukasz and I hope we can see
more work from you.

Still to do:
- Create an icon.
- Add pkg files to the MIME database with PackageInstaller as the default
handler. The rdef here has the MIME type name for the pkg format should
anyone else choose to add it :)
- Support for running scripts included with packages.
- Testing various different packages.
- Fixing problems in the Haiku GUI layout system which affect the code used
for various parts of the installer GUI (please bear with the commented out
code for now.)
- Adding this to the image.

Tomorrow I will add Łukasz's InstalledPackages utility which can be used to
view installed packages and uninstall them.


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