ahlstromcj / sequencer64

A major reboot of Seq24. Current release 0.97.0 (2021-05-13), native JACK MIDI, Song recording, playlists, and a Windows/Qt version. For fresher code, see the Seq66 project. Note that trigger and mute-group-in-MIDI-file formats have evolved! Back up your work!
GNU Affero General Public License v3.0
237 stars 28 forks source link

.deb package build broken in 0.95 #152

Open chaocrator opened 6 years ago

chaocrator commented 6 years ago

1) seems like 0.95.0 somehow expects that its libraries are already installed in the system. here's how the binary package build fails when they are not: `[...snip...] make[1]: Entering directory '/bld/s64095/sequencer64-master'

dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info -l/bld/s64095/sequencer64-master/lib/x86_64-linux-gnu

    install -d debian/sequencer64/DEBIAN

    dpkg-shlibdeps -Tdebian/sequencer64.substvars -l/bld/s64095/sequencer64-master/lib/x86_64-linux-gnu --ignore-missing-info debian/sequencer64/usr/bin/midiclocker64 debian/sequencer64/usr/bin/seq64

dpkg-shlibdeps: error: couldn't find library libseq64.so.0 needed by debian/sequencer64/usr/bin/midiclocker64 (ELF format: 'elf64-x86-64'; RPATH: '/usr/lib/x86_64-linux-gnu/sequencer64-0.94')

dpkg-shlibdeps: error: couldn't find library libseq_rtmidi.so.0 needed by debian/sequencer64/usr/bin/midiclocker64 (ELF format: 'elf64-x86-64'; RPATH: '/usr/lib/x86_64-linux-gnu/sequencer64-0.94')

dpkg-shlibdeps: error: couldn't find library libseq_gtkmm2.so.0 needed by debian/sequencer64/usr/bin/seq64 (ELF format: 'elf64-x86-64'; RPATH: '/usr/lib/x86_64-linux-gnu/sequencer64-0.94')

dpkg-shlibdeps: error: couldn't find library libseq64.so.0 needed by debian/sequencer64/usr/bin/seq64 (ELF format: 'elf64-x86-64'; RPATH: '/usr/lib/x86_64-linux-gnu/sequencer64-0.94')

dpkg-shlibdeps: error: couldn't find library libseq_rtmidi.so.0 needed by debian/sequencer64/usr/bin/seq64 (ELF format: 'elf64-x86-64'; RPATH: '/usr/lib/x86_64-linux-gnu/sequencer64-0.94')

dpkg-shlibdeps: error: cannot continue due to the errors listed above

Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file. To help dpkg-shlibdeps find private libraries, you might need to use -l.

dh_shlibdeps: dpkg-shlibdeps -Tdebian/sequencer64.substvars -l/bld/s64095/sequencer64-master/lib/x86_64-linux-gnu --ignore-missing-info debian/sequencer64/usr/bin/midiclocker64 debian/sequencer64/usr/bin/seq64 returned exit code 2

dh_shlibdeps: Aborting due to earlier error

debian/rules:33: recipe for target 'override_dh_shlibdeps' failed

make[1]: *** [override_dh_shlibdeps] Error 25

make[1]: Leaving directory '/bld/s64095/sequencer64-master'

debian/rules:25: recipe for target 'binary' failed

make: *** [binary] Error 2`

but this does not happen if libs are already installed with trivial "configure --prefix=/usr ; make ; make install" procedure.

2) when binary packages are built, they all contain only symlinks to the libs, but not actual libs. instead of single binary package, as it used to be with 0.94, i have now 11 binary packages: libseq64-dbg_0.94.8-0~xenial_amd64.deb libseq64-dev_0.94.8-0~xenial_amd64.deb libseq64_0.94.8-0~xenial_amd64.deb seq-gtkmm2-dbg_0.94.8-0~xenial_amd64.deb seq-gtkmm2-dev_0.94.8-0~xenial_amd64.deb seq-gtkmm2_0.94.8-0~xenial_amd64.deb seq-rtmidi-dbg_0.94.8-0~xenial_amd64.deb seq-rtmidi-dev_0.94.8-0~xenial_amd64.deb seq-rtmidi_0.94.8-0~xenial_amd64.deb sequencer64-dbg_0.94.8-0~xenial_amd64.deb sequencer64_0.94.8-0~xenial_amd64.deb

and inside them there's always symlinks, but not actual libs: [...snip...] drwxr-xr-x root/root 0 2018-06-14 14:36 ./usr/lib/x86_64-linux-gnu/sequencer64-0.94/ lrwxrwxrwx root/root 0 2018-06-14 14:36 ./usr/lib/x86_64-linux-gnu/sequencer64-0.94/libseq64.so -> libseq64.so.0.0.94 lrwxrwxrwx root/root 0 2018-06-14 14:36 ./usr/lib/x86_64-linux-gnu/sequencer64-0.94/libseq_gtkmm2.so -> libseq_gtkmm2.so.0.0.94 lrwxrwxrwx root/root 0 2018-06-14 14:36 ./usr/lib/x86_64-linux-gnu/sequencer64-0.94/libseq_rtmidi.so -> libseq_rtmidi.so.0.0.94

this happens on the same installation where i've successfully built all 0.94 packages. it's a separate installation used for builds only, not for regular usage. that's why normally seq64 is not installed there.

ahlstromcj commented 6 years ago

Try editing the file debian/control to remove all but the first two sections. The sections after that are mistakes on my part, apparently, since I don't provide deb packages for the libraries right now (they're convenience libraries for Seq64 only). My bad.

I will, in a few days, create a version 0.95.1, but am not at a good point for that version at this time.

And thanks for the report!

-------- chaocrator 08:05 Thu 14 Jun --------

 1. seems like 0.95.0 somehow expects that its libraries are already installed in the system. here's how the binary package build fails when they are not: [...snip...] make[1]: Entering directory '/bld/s64095/sequencer64-master' dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info -l/bld/s64095/sequencer64-master/lib/x86_64-linux-gnu install -d debian/sequencer64/DEBIAN dpkg-shlibdeps -Tdebian/sequencer64.substvars -l/bld/s64095/sequencer64-master/lib/x86_64-linux-gnu --ignore-missing-info debian/sequencer64/usr/bin/midiclocker64 debian/sequencer64/usr/bin/seq64 dpkg-shlibdeps: error: couldn't find library libseq64.so.0 needed by debian/sequencer64/usr/bin/midiclocker64 (ELF format: 'elf64-x86-64'; RPATH: '/usr/lib/x86_64-linux-gnu/sequencer64-0.94') dpkg-shlibdeps: error: couldn't find library libseq_rtmidi.so.0 needed by debian/sequencer64/usr/bin/midiclocker64 (ELF format: 'elf64-x86-64'; RPATH: '/usr/lib/x86_64-linux-gnu/sequencer64-0.94') dpkg-shlibdeps: error: couldn't find library libseq_gtkmm2.so.0 needed by debian/sequencer64/usr/bin/seq64 (ELF format: 'elf64-x86-64'; RPATH: '/usr/lib/x86_64-linux-gnu/sequencer64-0.94') dpkg-shlibdeps: error: couldn't find library libseq64.so.0 needed by debian/sequencer64/usr/bin/seq64 (ELF format: 'elf64-x86-64'; RPATH: '/usr/lib/x86_64-linux-gnu/sequencer64-0.94') dpkg-shlibdeps: error: couldn't find library libseq_rtmidi.so.0 needed by debian/sequencer64/usr/bin/seq64 (ELF format: 'elf64-x86-64'; RPATH: '/usr/lib/x86_64-linux-gnu/sequencer64-0.94') dpkg-shlibdeps: error: cannot continue due to the errors listed above Note: libraries are not searched in other binary packages that do not have any shlibs or symbols file. To help dpkg-shlibdeps find private libraries, you might need to use -l. dh_shlibdeps: dpkg-shlibdeps -Tdebian/sequencer64.substvars -l/bld/s64095/sequencer64-master/lib/x86_64-linux-gnu --ignore-missing-info debian/sequencer64/usr/bin/midiclocker64 debian/sequencer64/usr/bin/seq64 returned exit code 2 dh_shlibdeps: Aborting due to earlier error debian/rules:33: recipe for target 'override_dh_shlibdeps' failed make[1]: [override_dh_shlibdeps] Error 25 make[1]: Leaving directory '/bld/s64095/sequencer64-master' debian/rules:25: recipe for target 'binary' failed make: [binary] Error 2 but this does not happen if libs are already installed with trivial "configure --prefix=/usr ; make ; make install" procedure.

 2. when binary packages are built, they all contain only symlinks to the libs, but not actual libs. instead of single binary package, as it used to be with 0.94, i have now 11 binary packages: libseq64-dbg_0.94.8-0xenial_amd64.deb libseq64-dev_0.94.8-0xenial_amd64.deb libseq64_0.94.8-0xenial_amd64.deb seq-gtkmm2-dbg_0.94.8-0xenial_amd64.deb seq-gtkmm2-dev_0.94.8-0xenial_amd64.deb seq-gtkmm2_0.94.8-0xenial_amd64.deb seq-rtmidi-dbg_0.94.8-0xenial_amd64.deb seq-rtmidi-dev_0.94.8-0xenial_amd64.deb seq-rtmidi_0.94.8-0xenial_amd64.deb sequencer64-dbg_0.94.8-0xenial_amd64.deb sequencer64_0.94.8-0~xenial_amd64.deb

and inside them there's always symlinks, but not actual libs: [...snip...] drwxr-xr-x root/root 0 2018-06-14 14:36 ./usr/lib/x86_64-linux-gnu/sequencer64-0.94/ lrwxrwxrwx root/root 0 2018-06-14 14:36 ./usr/lib/x86_64-linux-gnu/sequencer64-0.94/libseq64.so -> libseq64.so.0.0.94 lrwxrwxrwx root/root 0 2018-06-14 14:36 ./usr/lib/x86_64-linux-gnu/sequencer64-0.94/libseq_gtkmm2.so -> libseq_gtkmm2.so.0.0.94 lrwxrwxrwx root/root 0 2018-06-14 14:36 ./usr/lib/x86_64-linux-gnu/sequencer64-0.94/libseq_rtmidi.so -> libseq_rtmidi.so.0.0.94

this happens on the same installation where i've successfully built all 0.94 packages. it's a separate installation used for builds only, not for regular usage. that's why normally seq64 is not installed there.

— You are receiving this because you are subscribed to this thread. Reply to this email directly, [1]view it on GitHub, or [2]mute the thread.

References

Visible links

  1. https://github.com/ahlstromcj/sequencer64/issues/152
  2. https://github.com/notifications/unsubscribe-auth/AHnVqKAXxApcME6dXBIckuAVqRlbVzlIks5t8nu2gaJpZM4UoIte

-- Q: What's the contour integral around Western Europe? A: Zero, because all the Poles are in Eastern Europe!

Addendum: Actually, there ARE some Poles in Western Europe, but they are removable!

Q: An English mathematician (I forgot who) was asked by his very religious colleague: Do you believe in one God? A: Yes, up to isomorphism!

Q: What is a compact city? A: It's a city that can be guarded by finitely many near-sighted policemen! -- Peter Lax

chaocrator commented 6 years ago

i've successfully built 0.95.1 deb package using the contents of debian subdirectory from 0.94.x.