Intent to package FlatCAM for Debian

Issue #221 new
tijuca created an issue

Hi,

I'd like to announce that I opened up a ITP bug report within the Debian bug tracker because I intend to package FlatCAM for Debian.

https://lists.debian.org/debian-devel/2016/11/msg00659.html

I already started the packaging within a git tree on my GitHub account.

https://github.com/tijuca/flatcam

Juan suggested to open up this bug report about the ITP.

Regards Carsten

Comments (9)

  1. Juan Pablo Caram repo owner

    Hi @tijuca , did you ever make any progress on this? Do you have scripts for packaging a .deb?

  2. tijuca reporter

    The packaging is ready for a upload, please take a look into the linked repository. As I'm not a Debian Developer (yet) I need a sponsor for that. Some other DDs offered a sponsoring but there is no progress on that. So it simply needs some more time.

  3. Juan Pablo Caram repo owner

    I'm interested in process of creating a package. Did you make a script? It would be great if we could just compile a .deb file and add it to the downloads section.

  4. tijuca reporter

    Of course you can create a *.deb package completely by hand manually. And so this at all by a script. But this misses all the great possibility to catch up automatically errors by the build tools. So it's likely better to use the available various build helper like dpkg-buildpackage.

    This tools needs at least two (or three) things to make their work.

    1. A source tarball named package_version.orig.tar.{bz,gz,xz}
    2. A prepared entry within the file debian/changelog file that matches the $(version) from the source tarball
    3. All needed build dependencies need fulfilled

    The resulting and created Debian version from that needs some attention before doing such things. If you want to build packages outside Debian please ensure the versions doesn't collide with the version in the Debian repositories. Example:

    Debian will have a version 8.5-1 once my work is accepted. Your version needs to be greater so people can install the package as a update even by dpkg. So would simple need some string to append in a unique way or be greater as 8.5 at all in a also unique way without breaking a breaking a version of 8.6-1 in Debian. You have two options here.

    1. Let your version be always less than the next main release
    2. Create a version that is always less than the next Debian version

    For 1.) you can something like this. The first part of your version is the last used version in Debian, would become here "8.5-1". Next you add a unique increasing number like the date of the release e.g. "-2017-05-20" plus the git hash if wanted "+git1234567" plus your subversion. This would end in 8.5-1-2017-05-20+git1234567-1. By the increasing date smaller git hashes doesn't count. If you have more than one version on the same day you need to add more clarity to this string, e.g by adding hour and minute also.

    For 2.) it's quite the same, except you need to be always smaller than the next release version. In Debian there is a special sign that marks a version smaller than other similar versions. This is the tilde ~. A version with the tilde in the version string is always smaller on the version at this sign. For example 8.6-1~foo1 is smaller than 8.6-1, but 8.6-1~foo3 is greater as 8.6-1~foo2.

    I'm always in favour for 1.) as this is the more logical versioning.

    You could take my tree and do the following.

    • Read out the date and the hash of the last commit and create the name of the archive from that.
    • Create a orig.tar tarball by git-archive
    • Extract the archive, place the orig tarball one folder above
    • Take the directory debian/ from my tree and copy it into the extracted source
    • Create a new changelog entry (take a look into the existing one), the format of the starting line and of the creator are mandatory
    • jump into the extracted source and call dpkg-buildpackage -us -uc, the created packages will be placed on folder above
    • Clean up and remove the used directory

    Like this a lot of automatic build are working on CI machines, with a bit of research you will find some existing scripts or Jenkins jobs. There is at least one Jenkins plugin that will such things. Jenkins Debian Package Builder

    I wouldn't do this all as I'm of course in favour to provide also nightly builds by uploads to the Debian repository if possible. If you really want to step in you would need to get more familiar with the build process of Debian packages to get possible error happens solved. I wont have much time to help here.

  5. Roman Valls

    Getting closer to full green tests and functionality on my python3/pyqt5 branch. Did you see this, @tijuca ?:

    http://travis.debian.net/

    It might simplify the Debian packaging process together with progress in issue #241 ;)

  6. tijuca reporter

    @brainstorm

    Even I've interested to try something out unfortunately I don't have enough time for doing another run on other software. So once the depended packages are available in Debian and FlatCam is in a state there things will mostly in a shape as expected I will do again a deeper look into the Debian packaging of FlatCam. I also may note that my skills with Python and in detail with Python GUI programming are really really restricted and I fear right now a try up of packaging will probably be to frustrating due not enough knowledge on specific problems that may happen.

    Of course I know travis.d.o and I use this for testing stuff before uploading packages to the archive. On which packages I need to look as they are probably new or changed dependencies?

  7. Roman Valls

    No worries. To your question, most notably python-qt5, matplotlib and python3 and spatialindex, I reckon ;)

  8. Log in to comment