gansm/finalcut

official debian package

alexmyczko opened this issue ยท 33 comments

Would you mind moving/dropping debian/ so it'd be easier to create an official debian package?

I wasn't able to find an RFP/ITP bug yet, is it possible none was filed yet?

I guess I'll create one, if there's no objections, WIP: http://sid.ethz.ch/debian/finalcut/

gansm commented

I have removed all package build files from the git repository (5c31d07 + 5207af7).

As a Debian user, I would be very happy to see FINAL CUT officially included in the Debian distribution.

gansm commented

Hi Alex, I wanted to ask you if you tried to build Debian packages for the new FINAL CUT version 0.8.0?

Hi thanks for asking and reminding me. will report here with results asap:

Here's my attempts, but it doesn't look good:

http://sid.ethz.ch/debian/finalcut/

gansm commented

When I look at the http://sid.ethz.ch/debian/finalcut/finalcut_0.8.0-1_amd64.build file, the compilation seems to have worked. The problem seems to be the http://sid.ethz.ch/debian/finalcut/finalcut-0.8.0/debian/libfinal0.symbols which is still from version 0.7.1

Please try it with this file symbols.zip

gansm commented

And you should change line

	test -f fonts/fonts.alias && cp fonts/fonts.alias fonts/xfonts-finalcut-newfont.alias || true

to

	test -f final/font/fonts.alias && cp final/font/fonts.alias final/font/xfonts-finalcut-newfont.alias || true

in debian/rules.

The debian/fonts-libfinal.install should have the following content:

final/font/8x16graph.pcf.gz /usr/share/fonts/X11/misc/
final/font/xfonts-finalcut-newfont.alias /etc/X11/fonts/misc/
final/font/40-finalcut-newfont.conf usr/share/fontconfig/conf.avail

And in debian/libfinal-dev.docs and debian/fonts-libfinal.docs you should replace

#fonts/newfont.txt

with

final/font/newfont.txt

.

gansm commented

Hi Alex, I just noticed that you changed the version number from 0.8.0 to 0.8.0-1. In this case the lines in libfinal0.symbols do not match and you have to recreate this file.

rm debian/libfinal0.symbols
dpkg-gensymbols -plibfinal0 -Odebian/libfinal0.symbols
gansm commented

All right, let's get started...

The debian/watch file should work fine with:

version=4
opts=filenamemangle=s/.+\/v?(\d\S+)\.tar\.gz/finalcut-$1\.tar\.gz/ \
  https://github.com/gansm/finalcut/tags .*/v?(\d\S+)\.tar\.gz

The "useless-autoreconf-build-depends" warning should disappear if you delete the following line

autotools-dev,

in the debian/control file.


The "arch-dependent-file-not-in-arch-specific-directory" error should disappear if you delete the

Multi-Arch: same

line below the

Package: libfinal-examples

line in the debian/control file.


To eliminate the "non-empty-dependency_libs-in-la-file" error, it should be sufficient to remove the

usr/lib/*/lib*.la

line from the debian/libfinal-dev.install file.

gansm commented

The "symbols-file-contains-current-version-with-debian-revision" error should finally disappear if you recreate the debian/libfinal0.symbols file and strip the Debian revision number from it by using the sed command.

rm debian/libfinal0.symbols
dpkg-gensymbols -plibfinal0 -Odebian/libfinal0.symbols
sed -i -e 's/0.8.0-1$/0.8.0/' debian/libfinal0.symbols

To fix the "not-binnmuable-all-depends-any" error, it should be sufficient to replace the following two lines below the line

Package: libfinal-examples

1. Change from

Architecture: all

to

Architecture: any

2. Change from

Depends: libfinal0 (= ${binary:Version}), ${misc:Depends}, libtinfo-dev, libncurses5-dev

to

Depends: libfinal0 (= ${binary:Version}), ${misc:Depends}, ${shlibs:Depends}

To remove the "link-to-shared-library-in-wrong-package" warning, the line (without trailing asterisk)

usr/lib/*/lib*.so

must be deleted from the file debian/libfinal0.install and inserted into the file debian/libfinal-dev.install.

Do you want to write the RFP: bug? and are you on IRC or element/matrix?

gansm commented

Hi Alex, to be honest, I have no idea what an RFP bug should look like.
As a communication channel for FINAL CUT issues, I prefer GitHub to have all information bundled and transparent in one place.

Hi @gansm it's very easy, see the first mail at https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=944202 (this is an example, but send To: is the same and after RFP: finalcut -- short description, and the body the same with fields pretty much like d/control and d/copyright... good luck

gansm commented

Okay, the mail is out. I hope that I could describe the functionality of my project meaningful enough for outsiders.

https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=998910

By the way: You still have a typo at the top of your debian/libfinal0.symbols file. There it is written libifnal instead of libfinal. (symbols-declares-dependency-on-other-package)

gansm commented

What's the next step?

some last tunings and then upload to the well guarded gate of NEW queue?

https://mentors.debian.net/package/finalcut/ # 10 should appear soon
i don't have the .symbols file anymore

uploaded

gansm commented

Oh no! I just see that the m68k architecture only has a pointer alignment of 2 bytes (16 bits).

alignof(char*) == 2

Unfortunately I don't own a m68k Linux VM to analyze this.

gansm commented

I believe FINAL CUT should build on a m68k architecture with this patch: patch.tar.gz

now that it's in debian, ubuntu etc... do you keep a list of software using your library somewhere?

gansm commented

Hi Alex, first of all, thank you very much for your great support. Sorry, I do not have a project list. Not everyone who develops with FINAL CUT tells me that. However, I know that it is used in some companies and in private environments.

FINAL CUT is used for educational purposes as well:

gansm commented

Hi Alex, I just noticed that you removed the binaries from the libfinal-examples_0.8.0-5 package. This violates the original purpose of this package. That package should (similar to gtk2.0-examples) demonstrate the capabilities of this library and give the developer the possibility to understand the implementation in the source code. For each hardware architecture, there should be a separate deb package.

Hi Alex, I just noticed that you removed the binaries from the libfinal-examples_0.8.0-5 package. This violates the original purpose of this package. That package should (similar to gtk2.0-examples) demonstrate the capabilities of this library and give the developer the possibility to understand the implementation in the source code. For each hardware architecture, there should be a separate deb package.

I had the impression the examples are fint by just being sources. As that package is marked all and not any it can not have compiled code that would not run on other architectures. Any developer should be able to just build the examples shipped to run them.

of course it is possible to switch from all to any or put the examples separate from the sources...

gansm commented

You are right! The package should be marked as "any". But I didn't notice it until just now.

gansm commented

Hi Alex, I was just surprised to see that libfinal-dev is missing all the header files from the subdirectories. Without these header files, it is impossible to compile your own application.

These files should be included here:

> find /usr/include/final 
/usr/include/final
/usr/include/final/util
/usr/include/final/util/fpoint.h
/usr/include/final/util/fdata.h
/usr/include/final/util/fstringstream.h
/usr/include/final/util/flogger.h
/usr/include/final/util/fstring.h
/usr/include/final/util/flog.h
/usr/include/final/util/fsize.h
/usr/include/final/util/frect.h
/usr/include/final/util/fcallback.h
/usr/include/final/util/emptyfstring.h
/usr/include/final/util/fsystem.h
/usr/include/final/util/fsystemimpl.h
/usr/include/final/menu
/usr/include/final/menu/fmenulist.h
/usr/include/final/menu/fradiomenuitem.h
/usr/include/final/menu/fmenubar.h
/usr/include/final/menu/fmenuitem.h
/usr/include/final/menu/fdialoglistmenu.h
/usr/include/final/menu/fcheckmenuitem.h
/usr/include/final/menu/fmenu.h
/usr/include/final/ftypes.h
/usr/include/final/fapplication.h
/usr/include/final/fstartoptions.h
/usr/include/final/fwidget_functions.h
/usr/include/final/widget
/usr/include/final/widget/fcombobox.h
/usr/include/final/widget/ftogglebutton.h
/usr/include/final/widget/flabel.h
/usr/include/final/widget/fscrollbar.h
/usr/include/final/widget/fspinbox.h
/usr/include/final/widget/flistview.h
/usr/include/final/widget/fstatusbar.h
/usr/include/final/widget/fbusyindicator.h
/usr/include/final/widget/fradiobutton.h
/usr/include/final/widget/flineedit.h
/usr/include/final/widget/fwindow.h
/usr/include/final/widget/fprogressbar.h
/usr/include/final/widget/flistbox.h
/usr/include/final/widget/fbutton.h
/usr/include/final/widget/fscrollview.h
/usr/include/final/widget/fbuttongroup.h
/usr/include/final/widget/ftooltip.h
/usr/include/final/widget/fswitch.h
/usr/include/final/widget/fcheckbox.h
/usr/include/final/widget/ftextview.h
/usr/include/final/fevent.h
/usr/include/final/final.h
/usr/include/final/dialog
/usr/include/final/dialog/fdialog.h
/usr/include/final/dialog/ffiledialog.h
/usr/include/final/dialog/fmessagebox.h
/usr/include/final/fwidgetcolors.h
/usr/include/final/input
/usr/include/final/input/fmouse.h
/usr/include/final/input/fkey_map.h
/usr/include/final/input/fkeyboard.h
/usr/include/final/vterm
/usr/include/final/vterm/fvterm.h
/usr/include/final/vterm/fstyle.h
/usr/include/final/vterm/fvtermattribute.h
/usr/include/final/vterm/fvtermbuffer.h
/usr/include/final/vterm/fcolorpair.h
/usr/include/final/fconfig.h
/usr/include/final/output
/usr/include/final/output/foutput.h
/usr/include/final/output/tty
/usr/include/final/output/tty/foptimove.h
/usr/include/final/output/tty/ftermoutput.h
/usr/include/final/output/tty/sgr_optimizer.h
/usr/include/final/output/tty/ftermdebugdata.h
/usr/include/final/output/tty/ftermios.h
/usr/include/final/output/tty/ftermopenbsd.h
/usr/include/final/output/tty/fcharmap.h
/usr/include/final/output/tty/ftermdata.h
/usr/include/final/output/tty/ftermcap.h
/usr/include/final/output/tty/fterm.h
/usr/include/final/output/tty/ftermfreebsd.h
/usr/include/final/output/tty/ftermdetection.h
/usr/include/final/output/tty/ftermcapquirks.h
/usr/include/final/output/tty/foptiattr.h
/usr/include/final/output/tty/ftermlinux.h
/usr/include/final/output/tty/ftermxterminal.h
/usr/include/final/output/tty/fterm_functions.h
/usr/include/final/output/fcolorpalette.h
/usr/include/final/fobject.h
/usr/include/final/fc.h
/usr/include/final/fwidget.h

it was always like that (broken) or i just broke it now?

ah the libfinal-dev.install is broken, fixed with -6, should appear shortly

gansm commented

Because you are just editing, can you please change the architecture in libfinal-examples from "all" to "any"?

if someone wants to execute the examples he just runs:

cd /usr/share/doc/libfinal/examples
make -f Makefile.gcc

we can state that in README.Debian ?

Otherwise you're now part of Debian:
https://qa.debian.org/developer.php?login=guru.mail%40muenster.de

i don't think the examples for a -dev package (like some others) should be any instead of all and include binaries.

gansm commented

Hi Alex, the examples are primarily intended to demonstrate the capabilities of FINAL CUT. This should also be possible for a user without any programming skills. The ncurses-examples are pretty much the equivalent of that. If you really want to develop with FINAL CUT, you can install libfinal-dev with all dependencies (including the c++ compiler).

i think this can be closed, as the package is packaged now...

will you prepare 0.9.0 deb src package for experimental, or shall i? or we just wait for release and go for unstable/sid?

gansm commented

I would prefer you to take care of this part.
I rarely build packages.