Attached message forwarded on behalf of Rafael who is not subscribed....Alan
--- Begin Message ---
You have probably noticed that I have done some commits in the debian/
directory recently. I am not getting involved with PLplot development again
but I wish to update the Debian package, which is heavily outdated (5.6.1-10
in testing).
I convinced Andrew Ross to adopt the package and become its "official"
maintainer. I was hoping to upload 5.8.0~RC1-1 to the Debian unstable
distribution this last weekend, but there is still a quite serious issue
concerning the Octave binding which prevented me of going ahead. I am
forwarding below one of the messages I sent to Andrew to show you the
context of the discusssion.
The problem is with plplot_octave.oct which should be generated with
mkoctfile but is instead built through a add_library command in
bindings/octave/CMakeLists.txt. I prepared a patch to this file (attached
below) in which I address the issue. It works for me but, since my
knowledge of cmake is quite fragmentary, I would like to hear the opinions
of the other developers.
Note that the patch is quite large because I removed some sections of the
file that seem obsolete. If you agree with this patch, I can commit it.
Please, Cc: to me, since I am not subscribed to plplot-devel.
Rafael
----- Forwarded message from Rafael Laboissiere <[EMAIL PROTECTED]> -----
From: Rafael Laboissiere <[EMAIL PROTECTED]>
Subject: Re: [EMAIL PROTECTED]: Re: PLplot 5.7.4 for Debian]
Date: Sat, 27 Oct 2007 01:39:39 +0200
To: Andrew Ross <[EMAIL PROTECTED]>
Organization: Debian GNU/Linux
Message-ID: <[EMAIL PROTECTED]>
* Rafael Laboissiere <[EMAIL PROTECTED]> [2007-10-26 11:56]:
> * Rafael Laboissiere <[EMAIL PROTECTED]> [2007-10-25 23:04]:
>
> > * Andrew Ross <[EMAIL PROTECTED]> [2007-10-24 09:40]:
> >
> > > You may want to wait a week or so. 5.8.0 should be released soon (there
> > > is a RC1 out now if you haven't seen).
> >
> > Sure, I have seen it and already updated debian/changelog accordingly. It
> > does not harm uploading RC1 and later the final 5.8.0.
>
> I am planing to upload today 5.8.0~RC1-1. There is still a problem with
> bindings/tk/tclIndex being created in the source tree. Could you please fix
> it in the appropriate CMakeLists.txt?
Okay, my plan was to upload today, but the following Lintian error was
bugging me:
E: octave-plplot: shlib-with-executable-bit
usr/lib/octave/site/oct/i486-pc-linux-gnu/plplot_octave.oct 0755
N:
N: Shared libraries should be mode 0644.
N:
N: Refer to Policy Manual, section 8.1 for details.
N:
The problem does not come from the fact that plplot_octave.oct has the
executable bit set, because all octave loadable modules have this bit set as
well:
$ ls -l /usr/lib/octave/2.9.13/oct/x86_64-pc-linux-gnu/dassl.oct
-rwxr-xr-x 1 root root 79144 2007-08-01 18:43
/usr/lib/octave/2.9.13/oct/x86_64-pc-linux-gnu/dassl.oct
The problem actually is due to a wrong build of plplot_octave.oct, which is
built as a shared lib, but shouldn't. The culprit seems to be the following
in bindings/octave/CMakeLists.txt:
add_library(plplot_octave MODULE
${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.cc)
target_link_libraries(
plplot_octave
plplot${LIB_TAG}
"${OCTAVE_LIBRARIES}"
"${OCTINTERP_LIBRARIES}"
)
Indeed, there is a SONAME appearing in plplot_octave.oct:
$ objdump -x debian/build_tmp/bindings/octave/plplot_octave.oct | grep
SONAME
SONAME plplot_octave.oct
This is plain wrong because *.oct files *_must_* be generated with
mkoctfile. I do see the setting of MKOCTFILE in cmake/modules/octave.cmake,
but I do not see its use in bindings/octave/CMakeLists.txt. Do you think
that this can be fixed?
I am afraid I will not be able to upload the Debian package to unstable
until this issue is addressed.
--
Rafael
----- End forwarded message -----
--- plplot-5.8.0~RC1.orig/bindings/octave/CMakeLists.txt
+++ plplot-5.8.0~RC1/bindings/octave/CMakeLists.txt
@@ -128,66 +128,24 @@
${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.h
)
-# Build octave interface.
-set(octave_interface_INCLUDE_PATHS
-${CMAKE_SOURCE_DIR}/include
-${CMAKE_BINARY_DIR}
-${CMAKE_BINARY_DIR}/include
-${CMAKE_CURRENT_SOURCE_DIR}
-${CMAKE_CURRENT_BINARY_DIR}
-${OCTAVE_INCLUDE_PATH}
-)
-include_directories(${octave_interface_INCLUDE_PATHS})
-
-add_library(plplot_octave MODULE ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.cc)
-target_link_libraries(
-plplot_octave
-plplot${LIB_TAG}
-"${OCTAVE_LIBRARIES}"
-"${OCTINTERP_LIBRARIES}"
-)
-
-if(USE_RPATH)
- get_target_property(LIB_INSTALL_RPATH plplot${LIB_TAG} INSTALL_RPATH)
- # (Reasonable) assumption here is that OCTAVE_LIBRARIES and
- # OCTINTERP_LIBRARIES have the same path.
- get_filename_component(OCTAVE_INSTALL_RPATH "${OCTAVE_LIBRARIES}" PATH)
- set(LIB_INSTALL_RPATH ${LIB_INSTALL_RPATH} ${OCTAVE_INSTALL_RPATH})
- set_target_properties(
- plplot_octave
- PROPERTIES
- PREFIX ""
- SUFFIX ".oct"
- INSTALL_RPATH "${LIB_INSTALL_RPATH}"
- INSTALL_NAME_DIR "${OCTAVE_OCT_DIR}"
- )
-else(USE_RPATH)
- set_target_properties(
- plplot_octave
- PROPERTIES
- PREFIX ""
- SUFFIX ".oct"
- INSTALL_NAME_DIR "${OCTAVE_OCT_DIR}"
- )
-endif(USE_RPATH)
-
-# Have to be specific about permissions for some reason (probably oct suffix).
-set(PERM_MODULES
-OWNER_READ
-OWNER_WRITE
-OWNER_EXECUTE
-GROUP_READ
-GROUP_EXECUTE
-WORLD_READ
-WORLD_EXECUTE
+add_custom_command(
+OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.oct
+DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.cc
+COMMAND ${MKOCTFILE} ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.cc
+-I${CMAKE_CURRENT_BINARY_DIR} -I${CMAKE_SOURCE_DIR}/bindings/octave
+-I${CMAKE_SOURCE_DIR}/include
+-L${CMAKE_BINARY_DIR}/src -lplplot${LIB_TAG}
+)
+
+add_custom_target(
+plplot_octave_oct_file ALL
+DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.oct
)
install(
-TARGETS
-plplot_octave
-LIBRARY
+FILES
+${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.oct
DESTINATION ${OCTAVE_OCT_DIR}
-PERMISSIONS ${PERM_MODULES}
)
# Build and install plplot_stub.m
@@ -233,23 +191,4 @@
DESTINATION ${PLPLOT_OCTAVE_DIR}
)
-if(never)
-add_custom_command(
-OUTPUT
-${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.oct
-${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.o
-COMMAND
-touch
-${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.oct
-${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.o
-DEPENDS
-${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.cc
-)
-
-# Link octave interface.
-add_custom_target(
-plplot_octave-libdir.oct ALL
-DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/plplot_octave.o
-)
-endif(never)
endif(ENABLE_octave)
--- End Message ---
-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems? Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel