On 7/9/17 1:03 PM, Scott Hannahs wrote:
On Jun 26, 2017, at 11:46 AM, Alexander Hansen <alexanderk.han...@gmail.com>
wrote:
On Jun 25, 2017, at 17:39, Scott Hannahs <s...@magnet.fsu.edu> wrote:
So do I need to modify the install phase to install the
/sw/lib/libcryptopp.5.dylib file? Should it be a hard link to the
libcryptopp.dylib or should that file not exist.
The preferred option is actually the reverse: real libcryptopp.5.dylib with
libcryptopp.dylib as a symbolic link.
When there are two split off packages, I think I have the following
all packages: Install.txt License.txt Readme.txt in share/doc/libcryptopp5
package: cryptest.exe in /bin testdata in share/libcryptopp/ headers in
include/libcryptopp
package-shlib: lib/libcryptopp.5.dylib and libcryptopp.dylib (and maybe
libcryptopp.a but I think I can delete it??)
Ideally, package-shlibs should only contain the shared library/libraries and
the DocFiles you noted earlier.
package-dev: headers in include/libcryptopp
If libcryptopp.dylib is a symlink as I suggested above, it needs to go here.
This structure helps us to have multiple versions of the library available for
builds, since by swapping the -dev package we can change what -lFOO on a build
line really points to.
Moving rather than is intentional, since you aren’t supposed to have the same
file provided by multiple splitoffs in a package build. We’d wind up with
files duplicated between the main package and splitoffs, or we’d have to go
back and delete them after the fact.
Make sure that you didn’t declare it in multiple Files lines, and otherwise
check what’s actually in the directory.
I seem to still be missing something essential here. I have separated the
symbolic link to the -dev split off and renamed the package to contain the
major version number.
I can’t seem to get a match between the shilib and the file name. I have set
it up so that the symbolic link gets made and then installed by the -dev split
off. But the deb package does not pass the test. I am having a match problem
for the files: and shilibs: fields.
I have tried various different prefixes and relative and absolute paths but
still do not seem to get a clean DEB file. I have used as templates some of
the other .info files in lib. Such as canna.info and lhasa.info.
Currently I get a mismatch:
Validating .deb dir /sw/src/fink.build/root-libcryptopp5-shlibs-5.6.5-23...
Error: Name '/sw/lib/libcryptopp.5.dylib' specified in Shlibs does not match
install_name
'/sw/src/fink.build/root-libcryptopp5-5.6.5-23/sw/lib/libcryptopp.5.dylib'
Error: package contains the shared library
/sw/lib/libcryptopp.5.dylib
but the corresponding install_name and compatibility_version
%p/src/fink.build/root-libcryptopp5-5.6.5-23/sw/lib/libcryptopp.5.dylib 5.6.0
are not listed in the Shlibs field. See the packaging manual.
The real libcryptopp.5.dylib file needs to have its install_name fixed
(this is a bug in upstream's makefile). You can either edit the Makefile
to do it properly, or run install_name_tool at the end of InstallScript:
to give it the proper install_name. The command for the latter option
would be something like:
install_name_tool -id %p/lib/libcryptopp.5.dylib %i/lib/libcryptopp.5.dylib
This fixes the file in "%i/lib/libcryptopp.5.dylib" to have an
install_name of "%p/lib/libcryptopp.5.dylib".
What files are in the base libcryptopp5 package? If there are any
executables, you need to make sure they show linkage (via otool -L) to
the file in %p and not the file in %i. If there are files there that
link to the library, it might be easier to fix the build process than to
fix the results after the build.
Hanspeter
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
List archive:
https://sourceforge.net/p/fink/mailman/fink-devel
Subscription management:
https://lists.sourceforge.net/lists/listinfo/fink-devel