[Scons-users] InstallVersionedLibrary sometimes fails when symlinking
Andrew C. Morrow
andrew.c.morrow at gmail.com
Tue Jun 18 08:34:40 EDT 2013
Hi Rob -
Any update on the dependency tracking issues with InstallVersionedLibrary?
Thanks,
Andrew
On Mon, Jun 3, 2013 at 11:41 AM, Managan, Rob <managan1 at llnl.gov> wrote:
> Hi Andrew,
>
> Good catch. They probably are not cleaned as well. Let me see what is
> involved to fix that.
>
> Rob
>
> *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
> Rob Managan email managan at llnl.gov
> LLNL phone: 925-423-0903
> P.O. Box 808, L-095 FAX: 925-422-3389
> Livermore, CA 94551-0808
>
>
> On 6/2/13 10:13 AM, "Andrew C. Morrow" <andrew.c.morrow at gmail.com> wrote:
>
>
> This is most likely related to the above, but it also appears that the
> installed symlinks are not captured by FindInstalledFiles, which means that
> Package (if I'm reading it correctly) won't package the symlinks.
>
> Thanks,
> Andrew
>
>
>
> On Sat, Jun 1, 2013 at 2:09 PM, Andrew C. Morrow <andrew.c.morrow at gmail.com>
> wrote:
>>
>>
>> Hi Rob -
>>
>> Sorry it took me a couple days to get back to this. I just tried out your
>> branch. The good news is that the issue with the build failing due to errors
>> while symlinking is fixed, so that is a big help.
>>
>> While experimenting with the fix though, I've noticed another issue. Using
>> the same test case as before:
>>
>> $ python $MYSCONS/script/scons.py --prefix=$(pwd)/install install
>> SCons import failed. Trying to run from source directory
>> scons: Reading SConscript files ...
>> scons: done reading SConscript files.
>> scons: Building targets ...
>> Install file: "build/foo.hpp" as "install/include/foo.hpp"
>> g++ -o build/foo.os -c -fPIC build/foo.cpp
>> g++ -o build/libfoo.0.1.2.dylib -dynamiclib -current_version 0.1.2
>> -compatibility_version 0.1.2 -undefined dynamic_lookup build/foo.os
>> Install file: "build/libfoo.0.1.2.dylib" as
>> "install/lib/libfoo.0.1.2.dylib"
>> scons: done building targets.
>>
>> Everything builds OK. Lets remove the symlink in the install directory:
>>
>> $ rm install/lib/libfoo.dylib
>>
>> Rerunning the build claims install is up to date:
>>
>> $ python $MYSCONS/script/scons.py --prefix=$(pwd)/install install
>> SCons import failed. Trying to run from source directory
>> scons: Reading SConscript files ...
>> scons: done reading SConscript files.
>> scons: Building targets ...
>> scons: `install' is up to date.
>> scons: done building targets.
>>
>> And the file was not re-created:
>>
>> $ ls install/lib/libfoo.dylib
>> ls: install/lib/libfoo.dylib: No such file or directory
>>
>> The same effect is observed removing libfoo.dylib from the build
>> directory. So it appears that there are some dependency edges that are not
>> being captured correctly.
>>
>> Thanks,
>> Andrew
>>
>>
>>
>> On Thu, May 30, 2013 at 2:08 PM, Managan, Rob <managan1 at llnl.gov> wrote:
>>>
>>> Andrew,
>>>
>>> I have a proposed fix at https://bitbucket.org/managan/scons_versionedlib
>>> .
>>> Let me know if it works for you.
>>> I added code to delete any existing symlink before creating them again.
>>> That was how it failed for me even if the error message seemed to say
>>> something else. I also made sure the symlinks in the install directory were
>>> set up the same as in the build directory. Not sure how that ever was
>>> different.
>>>
>>> I need to add a test case before generating a pull request but this
>>> should be good to go.
>>>
>>> Rob
>>>
>>> *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-
>>> Rob Managan email managan at llnl.gov
>>> LLNL phone: 925-423-0903
>>> P.O. Box 808, L-095 FAX: 925-422-3389
>>> Livermore, CA 94551-0808
>>>
>>>
>>> On 5/27/13 10:46 PM, "William Deegan" <bill at baddogconsulting.com> wrote:
>>>
>>> Andrew,
>>>
>>> On May 27, 2013, at 10:04 PM, Andrew C. Morrow
>>> <andrew.c.morrow at gmail.com> wrote:
>>>
>>>
>>> On Mon, May 27, 2013 at 11:03 PM, William Deegan
>>> <bill at baddogconsulting.com> wrote:
>>>>
>>>> Andrew,
>>>>
>>>> Were you able to repro this? If so, should I file a ticket?
>>>>
>>>>
>>>> Unfortunately, very busy IRL at the moment so haven't had a chance to
>>>> try it out.
>>>> Lots of work leading up to a conference, once that's over (6/6) I'll
>>>> have some time to take a look at this.
>>>
>>>
>>> Sounds good. I just wanted to make sure it didn't get missed. Built in
>>> support for versioned shared libraries is a really useful feature and I'd
>>> very much like to use it. I'm sure I'm not the only one.
>>>
>>>>
>>>>
>>>>
>>>> Also, is there some documentation on the SCons bugfix and release cycle?
>>>> I've noticed that there are only infrequently 'z +1' releases of SCons
>>>> x.y.z. If the problem with InstallVersionedLibrary is legitimate, should I
>>>> expect to see a fix in a to-be-released-somewhat-soonish SCons 2.3.1 bugfix
>>>> release, or longer term in some future SCons 2.4 release?
>>>>
>>>>
>>>>
>>>> SCons is a volunteer run open source project.
>>>> If you want to ensure that a fix is made, you'll either have to submit a
>>>> fix, hope that someone in the community picks up the issue and fixes it, or
>>>> finance a consultant to resolve the issue for you.
>>>
>>>
>>> I'm aware of the nature of the project. Still, this is a feature
>>> documented in the SCons manual pages. Someone loved this feature enough to
>>> shepherd it through development, code review, testing, documentation, and
>>> release.
>>>
>>>
>>> Though all of this is true, that doesn't guarantee that the developer of
>>> any feature is immediately available to address a bug.
>>>
>>>
>>>>
>>>> In general we will release a new version either when something notable
>>>> has been fixed or if there's been a sufficient number of small fixes.
>>>> If a fix is submitted for your issue (assuming it's not user error
>>>> (which from a cursory glance it doesn't look like it is)), then it would be
>>>> in the next release.
>>>
>>>
>>> Right, but "next release" at which revision level, and on (roughly) what
>>> time scale? Without some insight into the release process, intended
>>> schedule, defect triage process, backport policy, etc., it is difficult to
>>> reason about whether I should abandon my attempts to use this new feature or
>>> not. Even if I were to debug this particular issue and submit a patch as you
>>> have suggested, the adoption of that fix into a published release may not
>>> mesh with my own release schedule. I'm not complaining - I merely want to
>>> better understand: If I or someone else submitted a patch tonight, would it
>>> likely land in a 2.3.1 release in one month, or in a 2.4.0 in 6 months, or
>>> something else entirely?
>>>
>>>
>>> If this is a bug in an existing feature (and assuming the fix doesn't
>>> require breaking compatability), then the fix would show in the next minor
>>> release published after a fix is accepted.
>>> This likely means 2.3.1, however if other less trivial (assuming the fix
>>> is fairly trivial) changes have already landed in the main branch, then it
>>> might appear in the 2.4.0 branch.
>>> There is not direct correlation between a 2.3.1 release or a 2.4.0
>>> release and a timeline.
>>>
>>>
>>>
>>>>
>>>> Also keep in mind all the work is done in a public mercurial repo hosted
>>>> on bitbucket, so as soon as anyone published a fix you can try it against
>>>> your build, and use that code if it resolves your issue.
>>>
>>>
>>> That works well for projects that I plan to build for myself. However,
>>> for open source projects which use SCons as the publicly facing build system
>>> it is not a realistic solution to require downstream consumers to use the
>>> SCons mainline or manually patch their SCons installs. Such projects are
>>> constrained to use the demonstrably working subset of the official SCons
>>> releases that make their way into distribution and language package
>>> repositories. Potentially, a project could drag in the entire slug of fixed
>>> code and redefine the InstallVersionedLibrary, but this has different
>>> problems.
>>>
>>>
>>> Fair enough.
>>> Note however that SCons can be run in place with a scons-local package,
>>> so you could unpackage a build scons-local package from the latest code and
>>> check that into your project until such time as the needed fix is released.
>>>
>>> Hope that helps.
>>>
>>> In the meantime, it looks like Rob is hot on the trail of this issue.. so
>>> stay tuned.
>>>
>>> -Bill
>>>
>>> _______________________________________________
>>> Scons-users mailing list
>>> Scons-users at scons.org
>>> http://four.pairlist.net/mailman/listinfo/scons-users
>>>
>>
>
>
> _______________________________________________
> Scons-users mailing list
> Scons-users at scons.org
> http://four.pairlist.net/mailman/listinfo/scons-users
>
More information about the Scons-users
mailing list