The Community Forums

Interact with an entire community of cPanel & WHM users!
  1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

cPAddon Upgrade with Symbolic Link Never Completes

Discussion in 'cPanel Developers' started by Britney, Oct 7, 2010.

  1. Britney

    Britney Member

    Joined:
    Jul 30, 2010
    Messages:
    5
    Likes Received:
    0
    Trophy Points:
    1
    Hey everyone. I was writing a concrete5 cPAddon a little while ago and found this forum to be very helpful. Now I think I need some more assistance :(

    I'm writing an upgrade from concrete5 5.4.0.5 to 5.4.1. I've followed the instructions and I have a mysql and diff files in place, and it looks like diff is working. However, when the upgrade runs, the files are patched, and then I get this error:

    "Could not put updates in place!"

    It never continues on to run the mysql upgrade.

    The error from the error log is this:

    cpaddons_upgrade/*', '/home/accountname/public_html/5405j') failed: File exists at /usr/local/cpanel/Cpanel/FileUtils/Copy.pm line 122
    Cpanel::FileUtils::Copy::safecopy('5405j.cpaddons_upgrade/*', '/home/accountname/public_html/5405j') called at /usr/local/cpanel/Cpanel/cPAddons.pm line 2043
    Cpanel::cPAddons::stdupgrade(Cpanel::cPAddons=HASH(0x2a91f20), HASH(0x2aed630), HASH(0x16b43c0)) called at /usr/local/cpanel/cpaddons/Concrete/CMS/concrete5.pm line 58
    Concrete::CMS::concrete5::upgrade(Cpanel::cPAddons=HASH(0x2a91f20), HASH(0x2aed630), HASH(0x16b43c0)) called at /usr/local/cpanel/Cpanel/cPAddons.pm line 1602
    Cpanel::cPAddons::_handlemod(0, 'Concrete::CMS::concrete5', '16c3d3c8222fe84d54df458e6d4ef2bc', HASH(0x16b43c0)) called at /usr/local/cpanel/Cpanel/cPAddons.pm line 351



    I believe I know the reason for this error: in concrete5, most of the libraries are located in a concrete5/ directory (which is inside the 5405j directory above). In our hosted setup, we swapped out this directory with a symbolic link to /usr/local/share/concrete5/5.4.0.5/concrete, so that we could use cPAddons to manage the installation and upgrade process, but still have most libraries exist in one shared location on the server. Now, I'm trying to run an upgrade where the symbolic link needs to change to /usr/local/share/concrete5/5.4.1/concrete, and I'm not sure how to do this. diff fails if I include the contents of the "concrete/" directory in it.

    I'm assuming I need to do something like remove the symbolic link on update, and place a new symbolic link to a new place on upgrade, and I've been trying to do this, but I can't seem to get it to work. I can't even seem to print out the variables like "installdir" that I'm supposed to have access to from within the upgrade function! :confused:

    Any help would be much appreciated.
     
Loading...

Share This Page