Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Packaging: why is half of the runtime code in -dev package? #99

Open
peci1 opened this issue Mar 9, 2021 · 3 comments
Open

Packaging: why is half of the runtime code in -dev package? #99

peci1 opened this issue Mar 9, 2021 · 3 comments
Labels
bug Something isn't working help wanted Extra attention is needed

Comments

@peci1
Copy link
Contributor

peci1 commented Mar 9, 2021

Environment

  • OS Version: Ubuntu 18.04
  • Source or binary build? Both

Description

  • Expected behavior: libignition-common3 should contain everything that's needed to use e.g. ign launch.
  • Actual behavior: Half of the needed files are in libignition3-dev package.

Steps to reproduce

$ dpkg -L libignition-launch3
/.
/usr
/usr/lib
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/ign-launch-3
/usr/lib/x86_64-linux-gnu/ign-launch-3/plugins
/usr/lib/x86_64-linux-gnu/ign-launch-3/plugins/libignition-launch-gazebo-factory.so
/usr/lib/x86_64-linux-gnu/ign-launch-3/plugins/libignition-launch-gazebo.so
/usr/lib/x86_64-linux-gnu/ign-launch-3/plugins/libignition-launch-gazebogui.so
/usr/lib/x86_64-linux-gnu/ign-launch-3/plugins/libignition-launch-joystick.so
/usr/lib/x86_64-linux-gnu/ign-launch-3/plugins/libignition-launch-joytotwist.so
/usr/lib/x86_64-linux-gnu/ign-launch-3/plugins/libignition-launch-websocket-server.so
/usr/lib/x86_64-linux-gnu/libignition-launch3.so.3.1.1
/usr/share
/usr/share/doc
/usr/share/doc/libignition-launch3
/usr/share/doc/libignition-launch3/changelog.Debian.gz
/usr/share/doc/libignition-launch3/copyright
/usr/lib/x86_64-linux-gnu/libignition-launch3.so.3
peci1@cras-17:/media/data/subt_ws
$ dpkg -L libignition-launch3-dev
/.
/usr
/usr/include
/usr/include/ignition
/usr/include/ignition/launch3
/usr/include/ignition/launch3/ignition
/usr/include/ignition/launch3/ignition/launch
/usr/include/ignition/launch3/ignition/launch/Export.hh
/usr/include/ignition/launch3/ignition/launch/Plugin.hh
/usr/include/ignition/launch3/ignition/launch/config.hh
/usr/include/ignition/launch3/ignition/launch/detail
/usr/include/ignition/launch3/ignition/launch/detail/Export.hh
/usr/include/ignition/launch3/ignition/launch.hh
/usr/lib
/usr/lib/ruby
/usr/lib/ruby/ignition
/usr/lib/ruby/ignition/cmdlaunch3.rb
/usr/lib/x86_64-linux-gnu
/usr/lib/x86_64-linux-gnu/cmake
/usr/lib/x86_64-linux-gnu/cmake/ignition-launch3
/usr/lib/x86_64-linux-gnu/cmake/ignition-launch3/ignition-launch3-config-version.cmake
/usr/lib/x86_64-linux-gnu/cmake/ignition-launch3/ignition-launch3-config.cmake
/usr/lib/x86_64-linux-gnu/cmake/ignition-launch3/ignition-launch3-targets-relwithdebinfo.cmake
/usr/lib/x86_64-linux-gnu/cmake/ignition-launch3/ignition-launch3-targets.cmake
/usr/lib/x86_64-linux-gnu/cmake/ignition-launch3-all
/usr/lib/x86_64-linux-gnu/cmake/ignition-launch3-all/ignition-launch3-all-config-version.cmake
/usr/lib/x86_64-linux-gnu/cmake/ignition-launch3-all/ignition-launch3-all-config.cmake
/usr/lib/x86_64-linux-gnu/cmake/ignition-launch3-all/ignition-launch3-all-targets.cmake
/usr/lib/x86_64-linux-gnu/pkgconfig
/usr/lib/x86_64-linux-gnu/pkgconfig/ignition-launch3.pc
/usr/share
/usr/share/doc
/usr/share/doc/libignition-launch3-dev
/usr/share/doc/libignition-launch3-dev/changelog.Debian.gz
/usr/share/doc/libignition-launch3-dev/copyright
/usr/share/ignition
/usr/share/ignition/ignition-launch3
/usr/share/ignition/ignition-launch3/configs
/usr/share/ignition/ignition-launch3/configs/factory.ign
/usr/share/ignition/ignition-launch3/configs/gazebo.ign
/usr/share/ignition/ignition-launch3/configs/gazebo_plugins.ign
/usr/share/ignition/ignition-launch3/configs/multi_factory.ign
/usr/share/ignition/ignition-launch3/configs/plugins.ign
/usr/share/ignition/ignition-launch3/configs/websocket.ign
/usr/share/ignition/ignition-launch3/ignition-launch3.tag.xml
/usr/share/ignition/launch3.yaml
/usr/lib/x86_64-linux-gnu/libignition-launch3.so

Shouldn't the whole /usr/share and /usr/lib/ruby be part of the runtime package?

@peci1 peci1 added the bug Something isn't working label Mar 9, 2021
@peci1 peci1 changed the title Packaging: why is half of the runtime code on -dev package? Packaging: why is half of the runtime code in -dev package? Mar 9, 2021
@chapulina
Copy link
Contributor

Shouldn't the whole /usr/share and /usr/lib/ruby be part of the runtime package?

Yeah makes sense to me.

@j-rivero , is this something reasonable to fix in a stable release, or should we do it from Edifice?

@j-rivero
Copy link
Contributor

Shouldn't the whole /usr/share and /usr/lib/ruby be part of the runtime package?

I think that the discussion is not about runtime vs development packages since library packages typically in Debian are categorized like that, library packages, and not runtime packages.

Probably the point is how we understand the contents of the files under /usr/share and /usr/lib/ruby. Are they files designed to "develop" with the library? Are they consider as configuration files absolutely necessary to run the library and the library has no way of working without them? Are they configuration files somehow optional providing extra features? Depending on the answer we might need to relocate the files.

@j-rivero , is this something reasonable to fix in a stable release, or should we do it from Edifice?

i would prefer not to change the files shipped in packages unless the change solve an important bug and we consider the previous distribution broken for some scenarios. I'm open to change it in Edifice depending on the answer of the previous questions.

P.S: In our Open Robotics repositories we try to follow Debian packaging guidelines although we made some exceptions and the level of strictness is sensibly lower.

@peci1
Copy link
Contributor Author

peci1 commented Mar 11, 2021

Are they files designed to "develop" with the library?

Without /usr/share/ignition/launch3.yaml and /usr/lib/ruby/cmdlaunch3.rb you can't use ign launch. I would say that is a pretty essential part of the library, and not just some development goodies.

The files in /usr/share/ignition/ignition-launch3/configs/* are example launch files. I'm not sure if usage examples should be a part of the runtime or the development package, but I would incline towards runtime.

Here's the rationale for me creating this bug report. As the local development process is still a bit cumbersome with ignition libraries, I prefer to install local development versions into /usr overwriting the binary package files. Once I'm done with development and want to switch back to the binary distribution, I just apt install --reinstall the relevant packages. So I was a bit surprised that reinstalling libignition-launch3 did not return cmdlaunch3.rb to the original state (and I knew I was only editing that file, so no other libraries were needed to be reinstalled - or at least I thought so).

@chapulina chapulina added the help wanted Extra attention is needed label Jun 6, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working help wanted Extra attention is needed
Projects
None yet
Development

No branches or pull requests

3 participants