Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-09-27 Thread Gregor Riepl
Hi Petter,

sorry about the delay. I was waiting for a review from Bas (or another DD).
The package is also currently stuck at version 2.5.0, due to a lack of time on
my side, but I'll try to prepare and push an update ASAP.

The package is on mentors.debian.net, but you also need to get all the
dependencies if you want to build it yourself:
https://mentors.debian.net/packages/uploader/onitake%40gmail.com

> I need it for a project, and would love to get official Debian packages for
> it.  If a sponsor is needed, feel free to get in touch.  My sponsoring 
> preferences
> are available from http://www.hungry.com/~pere/debian-sponsoring.html >.

Thanks, I'll consider it.
But I'd really prefer another review of the package before releasing it into
the wild.

I could also use some help with common usage of Debian git.
My current build/release procedure for Cura is slightly complicated:
https://anonscm.debian.org/cgit/3dprinter/packages/cura.git/tree/debian/README.source
The same has to be repeated for all dependencies.

Regards,
Gregor



Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-09-27 Thread Petter Reinholdtsen
Hi.  What is the status for getting Cura into Debian?  What is holding up
the upload?

I need it for a project, and would love to get official Debian packages for
it.  If a sponsor is needed, feel free to get in touch.  My sponsoring 
preferences
are available from http://www.hungry.com/~pere/debian-sponsoring.html >.

-- 
Happy hacking
Petter Reinholdtsen



Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-06-19 Thread Gregor Riepl
Hi,

after going through another series of revisions and some cleanup, here is the
set of Cura 2.5 packages for review:

https://mentors.debian.net/package/libarcus
https://mentors.debian.net/package/libsavitar
https://mentors.debian.net/package/uranium
https://mentors.debian.net/package/cura-engine
https://mentors.debian.net/package/cura
https://mentors.debian.net/package/fdm-materials

I tried to address all the open issues and Lintian warnings.
There is now a README.source in every package that details my release process.
I'm open to suggestions for improvement, as it's a bit complicated.

libsavitar and libarcus still produce hardening warnings even though they're
now compiled with full hardening turned on. It seems g++ does not fully
support hardening, or protection is implemented differently. I will bring up
these issues with https://bugs.debian.org/673112 later on.

Thanks for testing, and have fun with Cura 2.5!

Regards,
Gregor



signature.asc
Description: OpenPGP digital signature


Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-05-03 Thread Bas Wijnen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi,

On Wed, May 03, 2017 at 08:57:54AM +0200, Gregor Riepl wrote:
> I just found a few more packages to build:
> https://github.com/Ultimaker/cura-build/tree/master/projects
> 
> fdm_materials seems relatively important, I packaged it and added it as a
> "Recommends" dependency to Cura. Cura will work without the definitions, but
> having them makes it much more useful.

Sounds good.

> Here: https://anonscm.debian.org/cgit/3dprinter/packages/fdm-materials.git/
> Any opinions? Should I name the package differently?

It looks good to me.  The only thing I'm not sure about is "fdm" in the name;
in scientific articles, I've learned to use "fff" (fused filament fabrication),
because "fdm" is trademarked AFAIK.  But it's certainly legal to use it in this
way, and since they've put it in the name, I would just keep it.

> I also added python3-zeroconf to Recommends:, this allows Cura to autodiscover
> networked UM3 printers.

Yes, that sounds useful.

> Cura-Doodle3D and Cura-Postprocessing are still missing, but I think those
> aren't crucial for the moment. I'll add them later.

Agreed.  First priority is to get Cura into Debian.

Thanks!
Bas
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQIbBAEBAgAGBQJZCsMoAAoJEJzRfVgHwHE6KaUP+O1jn0tb+SK24sjQuK4XPZOF
hd+uPD5g5HM3CJOkZgyfBNDksj+aOa80GMS6YFO90KhjailwByMHr4bsHv/ro+LE
R1O1KDtLZZPg6JR2pc+Lwd99iwiWAhkw8WXqM+OF49wIzCO2GUNzYCtD/MwjK+L2
5CCE32CRGljijLRkgaI+NUuLm6ElklBrMT41ZrCDukB8NVP2SeYuW3tb5ax9bhXz
9igAHRZjZnS9xBJ034p2yyJmBWDbcpCrD2Rk6gWj/H/KeFzaffFfssLTqvZSI6QE
Jsrl1Q6KOAHHnuFfWlLUGmecExciZlJb3rmvvGmv05PUpz8grDvwp7w/AEvap45l
vS7i/T26Pcc8i3q6WTuaGY0FIonHe3ZrOpVuKcTw3kTHSueIZ+ClsN018InIx9a1
sTk4+dnW5jujMJ2x+PMH7MUKJ/HDhAg+vp/8rQEjYurfVY+1fY+vMVNkIQEOGDxe
ikgpL8LIvnJOJycoQenHyLujvN1TU2ck5butNEWFPLvYQgmY+fQvfjSOkAk3dOCB
rJ+ioYmt5F0w75mQs5t91eiodwK7aqW0ojRBXOAlutF0YNBkHXOVOwMH66kIDXY0
i8JwjL66XxmTLzhKerFWraAESZImy6c4PfRecr1sD5wLBo4XeORLmOPA/ObgvYxt
E5fkqx5vB2yYjqa38G8=
=srKj
-END PGP SIGNATURE-



Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-05-03 Thread Gregor Riepl
Hi,

I just found a few more packages to build:
https://github.com/Ultimaker/cura-build/tree/master/projects

fdm_materials seems relatively important, I packaged it and added it as a
"Recommends" dependency to Cura. Cura will work without the definitions, but
having them makes it much more useful.

Here: https://anonscm.debian.org/cgit/3dprinter/packages/fdm-materials.git/
Any opinions? Should I name the package differently?

I also added python3-zeroconf to Recommends:, this allows Cura to autodiscover
networked UM3 printers.

Cura-Doodle3D and Cura-Postprocessing are still missing, but I think those
aren't crucial for the moment. I'll add them later.

Have a good day,
Greg



signature.asc
Description: OpenPGP digital signature


Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-04-05 Thread Gregor Riepl
> I agree this is the best way; my point was that you should not have a
> repository on github with a copy of the source, and the watch file should 
> point
> to Ultimaker's github.  Having a repository with the packaging is good.  You
> can also host that in our team repository on Alioth.  You are a member with
> commit access.

Oh!
I didn't know that.
Gonna move the 4 repos over to Alioth then, once I've figured out the hows and
wheres.

> Ah yes, I heard someone talk about that, and was told that it worked, but
> getting 2.4 was the easier fix for me. :)

Here's the discussion: https://github.com/Ultimaker/Cura/issues/537



signature.asc
Description: OpenPGP digital signature


Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-04-05 Thread Gregor Riepl
> Ah yes, clipper has weird and annoying naming.  I talked to upstream about it,
> but they don't want to change it.  I think it had something to do with a
> package naming conflict in Red Hat.  In any case, the package is called
> libpolyclipping.  There is a pkg-config file with it, but it's broken, so I
> changed it.  I don't think the change made it in upstream's release, although
> I'm not sure.  Code should use #include  and be compiled with:

Actually, polyclipping/clipper.hpp is correct.
pkg-config gives me -I/usr/include.

I updated the patch accordingly and dropped the removal of libs/*. This should
be sufficient for cmake to not pick any leftovers.

> g++ `pkg-config --cflags polyclipping` -c source.cpp -o object.o
> g++ `pkg-config --libs polyclipping` object.o -o target
> 
> This will add -I/usr/include/polyclipping and -lpolyclipping respectively.

Solved by https://cmake.org/cmake/help/v3.0/module/FindPkgConfig.html

It's building and working as expected.

>> I'm going to double-check if I've missed any files, and then I'll patch up 
>> the
>> the sources to 2.4.0. Hopefully that fixes things.

This, and fonts-open-sans - and we should be good to go.
I haven't received more feedback from the font maintainers, need to check back
and see if the package is ok now.



Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-04-04 Thread Bas Wijnen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

On Tue, Apr 04, 2017 at 11:36:37PM +0200, Gregor Riepl wrote:
> > Of course it is still useful to have your packaging (the debian directory) 
> > under version control as well, and using names for those releases also
> > makes sense.  If you want to name them debian-* that's fine, although given
> > that they only contain the debian directory, it doesn't seem like it would
> > confuse anyone anyway.
> 
> Well, this is the best way to do it when using git-buildpackage.
> If you have other suggestions, I'm all ears. :)

I agree this is the best way; my point was that you should not have a
repository on github with a copy of the source, and the watch file should point
to Ultimaker's github.  Having a repository with the packaging is good.  You
can also host that in our team repository on Alioth.  You are a member with
commit access.

> If at all possible, I'd like to stick to cmake modules and not use anything
> external like pkg-config.
> Or maybe there's a cmake module for pulling in information from .pc files?

It seems like there is:
https://cmake.org/cmake/help/v3.0/module/FindPkgConfig.html

> >> Cura's clipper consists of two files and has no external dependencies. I
> >> don't think repackaging it is worth the effort. Should a
> >> security-critical bug be discovered, it's not going to be too hard to
> >> convince the Cura developers to patch CuraEngine.
> > 
> > When I packaged the previous version of Cura (of which only CuraEngine made
> > it into Debian), I thought it was worth the effort, so luckily for you I
> > already packaged it. :)
> 
> Ok... If it doesn't require too many modifications in the build system.

It shouldn't.  Worst case, you can remove the bundled files and replace them
with symlinks as part of the build.  But using pkg-config is better; if
anything changes, that will change with it and it will continue to work.

> > I tried the earlier version from you, which was also unusable for me
> > because it didn't support delta printers.  I downloaded their new release
> > (2.4), which works fine for me.
> 
> It did - if you built your own printer definition with a custom keepout area
> like I did. ;)

Ah yes, I heard someone talk about that, and was told that it worked, but
getting 2.4 was the easier fix for me. :)

Thanks again,
Bas
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQIcBAEBAgAGBQJY5JFPAAoJEJzRfVgHwHE6+tcP/Rsyb//VpCxA+qp7m9arLvlH
G5BbdKqalyIc6b0y9X+A7UhumlKTFKPgwtLoqzQAR/GNsIcZykA8aQDWIXOajezS
yF3pYin/iB1EOTbKqtBX8qtbVtmI/nCEpKjrHj3ATv/eQ98ojK4Zlxyc7uV9mysg
niqw+SNhOr/4xvtLP6+3OPTfRHDH8W0EceXb2dUlxr5qeZVt5hu6SII0G1chJuCH
B1G4SjhaWeAmp6WRJd2We6zsdFvFXivRZ0rqebHAeTUzRCeyN9EI35hX9Ddl8IFL
40JFDJ7JLVr0HxfuVRbzuVoE17b77BCIorH2dsFnbQNgABE2CdcyDNIJ0UUwrcIX
gTcWTbthoIaW1vPKsZ6D1EevC/jAEJeJlv108wKHn3LDllcIeiBil1crZJAPj7lw
86XX0egUb1YeTxoLuauUO2Dg6eeHqr0TYWjpGfHroIMNdhLvfev8OpY5KeEt13/V
jxaPxuoFnh61/5xE3kbhC2Gw2+cnhm/RC6dROBpIfrz13bI+C12yJNQqfH1gB4Hn
3aVwcrUdGn3Vxg6XNFUlOCDOiyqoU2foYAlW1S3eO/lB5BAOCgXkrXourU57zi9H
ChGM4vhIS3omvsXWFYhp++wFQ8ACqTAvjRCuJLdxSz+8nfnxRIpsNbrGmzne6NcC
o/TVYc7LfL5x/NrkKW7w
=iHHt
-END PGP SIGNATURE-



Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-04-04 Thread Gregor Riepl
>> I'll probably settle for debian-2.3.1 (branches) and debian-2.3.1-1
>> (tags).
> 
> Ah, I see.  I think you should use upstream's releases anyway; if you need
> to make changes for the packaging, they should just be part of the package,
> not a fork from upstream.  Especially if the only change that your personal
> upstream has compared to the real upstream is the version number.
> 
> So unless I'm missing something, I think you should use Ultimaker's source
> as upstream.  If you need any changes (such as using packaged libraries),
> they should be part of the packaging (through patches).

This is basically what I'm doing. I'm not maintaining a fork, rather I'm
pulling in the upstream sources as a separate git remote when I'm building
packages.

git-buildpackage handles this very well, if you give it the right arguments.
It will tell you right away if you modified anything outside debian/ that is
not patched by quilt.

> Of course it is still useful to have your packaging (the debian directory) 
> under version control as well, and using names for those releases also
> makes sense.  If you want to name them debian-* that's fine, although given
> that they only contain the debian directory, it doesn't seem like it would
> confuse anyone anyway.

Well, this is the best way to do it when using git-buildpackage.
If you have other suggestions, I'm all ears. :)

>> Ok, so... libclipper is not what you think it is. The one used by Cura
>> comes from here: http://www.angusj.com/delphi/ While the one in Debian is
>> this one: http://www.ysbl.york.ac.uk/~cowtan/clipper/clipper.html
> 
> Ah yes, clipper has weird and annoying naming.  I talked to upstream about
> it, but they don't want to change it.  I think it had something to do with
> a package naming conflict in Red Hat.  In any case, the package is called 
> libpolyclipping.  There is a pkg-config file with it, but it's broken, so
> I changed it.  I don't think the change made it in upstream's release,
> although I'm not sure.  Code should use #include  and be
> compiled with:
> 
> g++ `pkg-config --cflags polyclipping` -c source.cpp -o object.o g++
> `pkg-config --libs polyclipping` object.o -o target
> 
> This will add -I/usr/include/polyclipping and -lpolyclipping respectively.

If at all possible, I'd like to stick to cmake modules and not use anything
external like pkg-config.
Or maybe there's a cmake module for pulling in information from .pc files?

>> Cura's clipper consists of two files and has no external dependencies. I
>> don't think repackaging it is worth the effort. Should a
>> security-critical bug be discovered, it's not going to be too hard to
>> convince the Cura developers to patch CuraEngine.
> 
> When I packaged the previous version of Cura (of which only CuraEngine made
> it into Debian), I thought it was worth the effort, so luckily for you I
> already packaged it. :)

Ok... If it doesn't require too many modifications in the build system.

>> rapidjson is a different story. I managed to build CuraEngine with 
>> librapidjson from sid by patching CMakeLists and removing rapidjson from
>> the tree. I'm not particulary happy with the solution, but it seems to
>> work.
> 
> Sounds good.  I think this is the way to go; I understand upstream when
> they want to bundle their dependencies, so it's not useful to try to
> convince them to stop doing that (aside from the fact that we most likely
> wouldn't succeed). But them bundling them doesn't mean that we should use
> those version.  One point of having a distribution is that we can trust our
> packages, so we don't have to fear our dependencies doing weird things
> without us knowing about it.
> 
>> Now, as for the final result: It is mostly unusable, and I don't know yet
>> if it's upstream's fault or that I missed some files. In any case, there
>> was a regression in 2.3 that made the UI unusable on small screen
>> resolutions. 2.1.3 had worked fine.
> 
> I tried the earlier version from you, which was also unusable for me
> because it didn't support delta printers.  I downloaded their new release
> (2.4), which works fine for me.

It did - if you built your own printer definition with a custom keepout area
like I did. ;)

>> I'm going to double-check if I've missed any files, and then I'll patch
>> up the the sources to 2.4.0. Hopefully that fixes things.
> 
> Sounds good.  Thanks for your work!



Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-04-04 Thread Gregor Riepl
> Any reason you took this off-list?  I'm not sending your mail back to it
> without your permission, but if it was a mistake, feel free to post any of my
> replies back to the list as well.

I'm sorry, that wasn't my intention. I believe one of your responses was
addressed to me personally, so I thought you wanted to discuss the issue in
private first to reduce list noise. Or, maybe I forgot the Cc myself at some
point, and your responses were off-list after that.

Looks like this was a total misunderstanding!

The previous discussion follows:

>> >> Looking at libArcus, I see two things: the problem that it detects is
>> >> that the watch file doesn't match any file on github.  This is because of
>> >> the "d" you left in there, which means it will only match versions
>> >> starting with a literal d.  If you remove it, it accepts any file that
>> >> starts with a number (and ends with .tar.gz).
>> > 
>> > Argh. I thought I had copy-pasted the Github rule from the Debian docs.
>> > Looks like I messed that up.
>> 
>> Now I remember why I did this:
>> I was planning to tag my Debian releases as 'd2.3.1' to differentiate them
>> from the upstream '2.3.1'. But that's not the best idea, and they still lack
>> the Debian release ('2.3.1-1').
>> 
>> I'll probably settle for debian-2.3.1 (branches) and debian-2.3.1-1 (tags).
> 
> Ah, I see.  I think you should use upstream's releases anyway; if you need to
> make changes for the packaging, they should just be part of the package, not a
> fork from upstream.  Especially if the only change that your personal upstream
> has compared to the real upstream is the version number.
> 
> So unless I'm missing something, I think you should use Ultimaker's source as
> upstream.  If you need any changes (such as using packaged libraries), they
> should be part of the packaging (through patches).
> 
> Of course it is still useful to have your packaging (the debian directory)
> under version control as well, and using names for those releases also makes
> sense.  If you want to name them debian-* that's fine, although given that 
> they
> only contain the debian directory, it doesn't seem like it would confuse 
> anyone
> anyway.
> 
>> Ok, so... libclipper is not what you think it is.
>> The one used by Cura comes from here: http://www.angusj.com/delphi/
>> While the one in Debian is this one:
>> http://www.ysbl.york.ac.uk/~cowtan/clipper/clipper.html
> 
> Ah yes, clipper has weird and annoying naming.  I talked to upstream about it,
> but they don't want to change it.  I think it had something to do with a
> package naming conflict in Red Hat.  In any case, the package is called
> libpolyclipping.  There is a pkg-config file with it, but it's broken, so I
> changed it.  I don't think the change made it in upstream's release, although
> I'm not sure.  Code should use #include  and be compiled with:
> 
> g++ `pkg-config --cflags polyclipping` -c source.cpp -o object.o
> g++ `pkg-config --libs polyclipping` object.o -o target
> 
> This will add -I/usr/include/polyclipping and -lpolyclipping respectively.
> 
>> Cura's clipper consists of two files and has no external dependencies. I 
>> don't
>> think repackaging it is worth the effort. Should a security-critical bug be
>> discovered, it's not going to be too hard to convince the Cura developers to
>> patch CuraEngine.
> 
> When I packaged the previous version of Cura (of which only CuraEngine made it
> into Debian), I thought it was worth the effort, so luckily for you I already
> packaged it. :)
> 
>> rapidjson is a different story. I managed to build CuraEngine with
>> librapidjson from sid by patching CMakeLists and removing rapidjson from the
>> tree. I'm not particulary happy with the solution, but it seems to work.
> 
> Sounds good.  I think this is the way to go; I understand upstream when they
> want to bundle their dependencies, so it's not useful to try to convince them
> to stop doing that (aside from the fact that we most likely wouldn't succeed).
> But them bundling them doesn't mean that we should use those version.  One
> point of having a distribution is that we can trust our packages, so we don't
> have to fear our dependencies doing weird things without us knowing about it.
> 
>> Now, as for the final result: It is mostly unusable, and I don't know yet if
>> it's upstream's fault or that I missed some files. In any case, there was a
>> regression in 2.3 that made the UI unusable on small screen resolutions. 
>> 2.1.3
>> had worked fine.
> 
> I tried the earlier version from you, which was also unusable for me because 
> it
> didn't support delta printers.  I downloaded their new release (2.4), which
> works fine for me.
> 
>> I'm going to double-check if I've missed any files, and then I'll patch up 
>> the
>> the sources to 2.4.0. Hopefully that fixes things.
> 
> Sounds good.  Thanks for your work!
> Bas
> 



Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-03-27 Thread Gregor Riepl
And here's my (updated) response to Rock's comments:

> libArcus
> 
> 
> debian/changelog
> 
> 
>  * There seems to be a line in the changelog that is too long, it'd be
>nice to split it into two so it fits into the "80 character limit".

Done.

>  * Typically, new packages contain only a single entry with a line
>similar to "Initial Release. Closes: #n". The changelog should
>only contain entries for actually released revisions. In this case,
>if version 2.1.3-1 never made it into Debian it should be removed
>and if version 2.3.0-1 is going to be the first to get into then
>this should be the one and only entry in the changelog.

Fixed.

> debian/control
> --
> 
>  * Since "3.0 (quilt)" souce package format it is no longer needed to
>list "quilt" as a build-dependency [1]. Patches can now be handled
>by dpkg-source. In fact you don't even need the "--with quilt" flag
>on debian/rules (I tried removing this flag and it built correctly,
>please let me know if doesn't work for you)

Removed.

>  * The VCS fields should point to "where the Debian source package is
>developed" [2], that is, where the changes to the debian folder are
>made, which in this case would be your GitHub repository and not
>upstream's.

Thanks for the hint, the exact meaning of those fields wasn't clear to me. 
Fixed.

>  * Normally, the binary packages providing shared libraries are named
>as "libfooX" where foo would be the name of library and X the
>"major-version" [3]. In your case this would mean that the binary
>package that provides libArcus.so.3 should be named "libarcus3"
>instead of just "libarcus". However I don't quite get what's going
>on with this library's versioning. This packages provides
>"libArcus.so.1.1.0" and a link to it called "libArcus.so.3", is
>there a reason for this? To my understanding the latter should be
>called "libArcus.so.1" and therefore the binary package would end up
>being "libarcus1". Nevertheless, I'm no expert and it seems I'm
>missing something here.

Fixed by naming the binary package libarcus3.
The other packages were left as-is, I assumed that's ok.

> debian/rules
> 
> 
>  * Lintian reports the tags "hardening-no-fortify-functions" and
>"hardening-no-bindnow". There's an ongoing effort to "update as many
>packages as possible to use security hardening build flags". You
>might want to try to deal with it, sometimes it is as "simple" as
>adding "export DEB_BUILD_MAINT_OPTIONS = hardening=+all".

As suggested by Bas, I set compat to 10 and added a dependency on debhelper
10. This should have the same effect.

> debian/watch
> 
> 
>  * It'd be nice to include a watch file, some Debian tools rely on this
>file to i.e. estimate the "freshness" of the Debian repository as a
>whole. It should be particularly easy to write a wath file in your
>case since upstream uses GitHub, check out this template [4].

Done, for all 4 packages.

> debian/patches
> --
> 
>  * Although not mandatory you might want to adhere to the "Patch
>Tagging Guidelines" [5]

Done.

> CuraEngine
> ==
> 
>  * It would be nice to include a manpage explaining what the command
>CuraEngine does and the command-line options it accepts. Also it
>might be necessary to rename it to "curaengine" for the sake of tab
>completion and such, but I'm not sure about this right now.

Done, with the help of help2man.
Some manual editing was necessary. Perhaps it's possible to fully autogenerate
with the right options.

> Cura
> 
> 
>  * This one I haven't been able to build. I'm attaching the build log.
>It might be an error on my building tool-chain but please check it
>out, just in case. Error shows up around line 583.

This issue should be fixed now.




signature.asc
Description: OpenPGP digital signature


Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-03-27 Thread Bas Wijnen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi,

On Mon, Mar 27, 2017 at 09:04:21AM +0200, Gregor Riepl wrote:
> > It looks like this has been forgotten?  I would like to get Cura into 
> > Debian,
> > so if there's anything I can do to help, let me know.
> 
> I'm sorry for the lack of action on my part, progress was stalled since some
> of the criticised points are a bit difficult to fix, and I've been too busy to
> invest much time into the them.

No problem, thanks for working on it!

> I did cut down on them a bit, but the packages are still not done yet.

Cool.  I'm sure we'll get there. :)

> > This is quite confusing, and I would prefer to make it right in Debian.  
> > And of
> > course try to convince upstream to make it right as well.  I'm not sure if 
> > it
> > generates junk; it might.  You should run piuparts to see if ldconfig 
> > creates a
> > symlink that is not cleaned up on package removal.
> 
> I reported the issue upstream, but haven't received a conclusive repsonse:
> https://github.com/Ultimaker/libArcus/issues/52

That looks good.  I hope they will respond.  It is bad for users if Debian's
and upstream's SONAMEs are incompatible; if they install something from us and
from online, it will break things.

> One of my suggested options would require changing upstream versioning
> altogether, the other would assimilate the Debian package version to what they
> are already using. And awhienstra said they would be changing Arcus versioning
> anyway.
> 
> So I'm not sure what to do.

The important part in terms of compatibility is the SONAME.  So the version of
the package doesn't really matter, but the files and symlinks in /usr/lib
should be properly named, and if possible, the SONAME should be identical to
what upstream uses.

> >> Also, CuraEngine is a core component of Cura, and while I assume it can be
> >> used standalone, it's usually not meant to be executed from the command
> >> line.
> > 
> >> But I can take a look and provide a simple man page, if that's desired.
> > 
> > No, you don't need to do that.  As you say, it's not meant to be used 
> > directly.
> > That means two things: it doesn't need a manpage, and it must not be in the
> > (default) executable path.  So install it under /usr/lib/cura/ or
> > /usr/lib/cura-engine/ and make sure the cura package calls it from there.
> > 
> > This means you do need to change the cura source, I suppose, but in this 
> > case
> > that's part of integrating the program with Debian, so it is "strictly
> > necessary".
> 
> I'm a bit reluctant to do this, as it will introduce additional maintenance
> overhead. But if this is the 'proper' way to go, I'll look into it.

Well, the other option is to say that users can use it directly.  This is a
reasonable thing to say; I'm actually planning to set up some automated slicing
system which uses only the engine, not the gui.  So in that case, it should be
in the executable path, and it should also have a manpage.  For programs like
this, most of that manpage can be the contents of the --help output.

As for the capitals in the filename: I don't think there's a rule against it.
Most programs don't have capitals in them, so you could ask upstream to
consider changing it (but you can also not bother them), but it's not a big
deal, and having the same name as upstream is more important than it being
lowercase.

Thanks,
Bas
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQIcBAEBAgAGBQJY2N/gAAoJEJzRfVgHwHE6fl8P/1EabLSF7TUxKvv/jafwwHs0
hTTAjmqy2qgsA/dFN3X2YIMKmX14cxf5fXd3XZ0ASYAWPSKA7hLcTwN4hH8aM69Y
8fB7EYAq2O0COZ7txPRKp4nWXxX8Rn2zoaFpnXEKgjgRNIcZjtl4sT4JoNR2MFu/
T8Hv/8MjVLB5IdoKCX0eaWhE2DlT3Cd+o4n4q1x65vFhbt9f61SYto+kHCRfc7qA
nq4k8O3fxPdEpZkh89P/5ra8TTQhxvvStNsZHUNaT3TXVS5WIMOZA28RzDvP4Y77
ISyQ81eLOmdGZT8VoGHqbwH1Pj3iW9eddOSymR+mi1m1IzNB7jmBHQdLff3HbzPT
SI1BotEO8krT8okKqMEjK46zbabjhh6tcvSWPV9olylCM8zyRns9WYdtVMsxhiij
FMZqTCMpKfV3cBMbwyxqLXfB/ArQyDT4eFgKGGrqhOoIvBHlConYjWA2+q+rKOHi
zBXH5gL6WCbdjIiGpvgQKvA5z+Hx3eCJh9pXVK7lAH+5Ylpqfl1qO5yLvjAnqO9N
gFjhk+xjSrh4+7PnYHm6W8nHti/jWQW9FVLtfS1nmfHmBoMPR9ac46CROA29JB7y
TNi/qpTv2fRImhhRP+NxhlBiD1Wy8PSTxhm6PMzTjebmwpKIRzjrukVvQtpVo4WA
cJQiM/pLA+TSrwqJxyu1
=NPau
-END PGP SIGNATURE-



Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-03-27 Thread Gregor Riepl
Hi,

> It looks like this has been forgotten?  I would like to get Cura into Debian,
> so if there's anything I can do to help, let me know.

I'm sorry for the lack of action on my part, progress was stalled since some
of the criticised points are a bit difficult to fix, and I've been too busy to
invest much time into the them.

I did cut down on them a bit, but the packages are still not done yet.

> Not many I suppose, but if we all follow this rule, it may make it easier for
> programs to display the information is a good way.  In a case like this, even
> if I wouldn't be able to come up with a reason for the rule, I'd fix it anyway
> because it's so easy to do.

Please excuse me, then. I will take more care about these things from now on.

> This is quite confusing, and I would prefer to make it right in Debian.  And 
> of
> course try to convince upstream to make it right as well.  I'm not sure if it
> generates junk; it might.  You should run piuparts to see if ldconfig creates 
> a
> symlink that is not cleaned up on package removal.

I reported the issue upstream, but haven't received a conclusive repsonse:
https://github.com/Ultimaker/libArcus/issues/52

One of my suggested options would require changing upstream versioning
altogether, the other would assimilate the Debian package version to what they
are already using. And awhienstra said they would be changing Arcus versioning
anyway.

So I'm not sure what to do.

> Even simpler is to set the debhelper compat level to at least 10.  It will
> default to enable all hardening.  (I didn't check the current level, but if it
> is 10 and there's no hardening, it must have been explicitly disabled 
> somehow.)

Ok, I will test that.

>> Also, CuraEngine is a core component of Cura, and while I assume it can be
>> used standalone, it's usually not meant to be executed from the command
>> line.
> 
>> But I can take a look and provide a simple man page, if that's desired.
> 
> No, you don't need to do that.  As you say, it's not meant to be used 
> directly.
> That means two things: it doesn't need a manpage, and it must not be in the
> (default) executable path.  So install it under /usr/lib/cura/ or
> /usr/lib/cura-engine/ and make sure the cura package calls it from there.
> 
> This means you do need to change the cura source, I suppose, but in this case
> that's part of integrating the program with Debian, so it is "strictly
> necessary".

I'm a bit reluctant to do this, as it will introduce additional maintenance
overhead. But if this is the 'proper' way to go, I'll look into it.

Best regards,
Greg



signature.asc
Description: OpenPGP digital signature


Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2017-03-25 Thread Bas Wijnen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi,

It looks like this has been forgotten?  I would like to get Cura into Debian,
so if there's anything I can do to help, let me know.

I also have some comments on the comments:

On Mon, Dec 19, 2016 at 10:51:52PM +0100, Gregor Riepl wrote:
> > * There seems to be a line in the changelog that is too long, it'd be
> >   nice to split it into two so it fits into the "80 character limit".
> 
> Ok, I thought this wasn't so important, so I ignored the lint warning.

To properly handle a lintian warning one of three things can be done:
- - Fix the code so it doesn't trigger the warning anymore.  This should be done
  if lintian is correct.
- - File a bug report against lintian.  This should be done if lintian is wrong,
  and this is not an exceptional case.
- - Add an override to the package.  This should be done if lintian is wrong, 
but
  it is unreasonable to expect lintian to be right in this case.

Leaving bugs in a package because it takes too much work to fix them is
acceptable (nobody can force you to do the work), but for a new package it
makes sense to aim for perfection, so making it initially lintian-clean is
recommended.

A pet peeve of me (which is not applicable here, but I'll take this opportunity
to complain about it anyway) is people who add lintian overrides because they
don't want to fix a bug and are bothered by the warning.  That is
counter-productive, and IMO violates our promise not to hide our problems.  If
you don't want to fix a bug, just say it.  Don't pretend that it is not a bug.
But enough of this; you didn't even do this. :)

> Who still uses a 80-character terminal in this day and age anyway? :)

Not many I suppose, but if we all follow this rule, it may make it easier for
programs to display the information is a good way.  In a case like this, even
if I wouldn't be able to come up with a reason for the rule, I'd fix it anyway
because it's so easy to do.

> > * Normally, the binary packages providing shared libraries are named
> >   as "libfooX" where foo would be the name of library and X the
> >   "major-version" [3]. In your case this would mean that the binary
> >   package that provides libArcus.so.3 should be named "libarcus3"
> >   instead of just "libarcus". However I don't quite get what's going
> >   on with this library's versioning. This packages provides
> >   "libArcus.so.1.1.0" and a link to it called "libArcus.so.3", is
> >   there a reason for this? To my understanding the latter should be
> >   called "libArcus.so.1" and therefore the binary package would end up
> >   being "libarcus1". Nevertheless, I'm no expert and it seems I'm
> >   missing something here.
> 
> Yes, I noticed the warnings as well.
> 
> However, upstream seems to prefer naming and versioning as they are now, so
> I didn't want to change them.
> As far as I can tell, this isn't going to be a problem, as there aren't any
> other packages besides Cura that use libArcus anyway.

This is quite confusing, and I would prefer to make it right in Debian.  And of
course try to convince upstream to make it right as well.  I'm not sure if it
generates junk; it might.  You should run piuparts to see if ldconfig creates a
symlink that is not cleaned up on package removal.

> >debian/rules
> >
> >
> > * Lintian reports the tags "hardening-no-fortify-functions" and
> >   "hardening-no-bindnow". There's an ongoing effort to "update as many
> >   packages as possible to use security hardening build flags". You
> >   might want to try to deal with it, sometimes it is as "simple" as
> >   adding "export DEB_BUILD_MAINT_OPTIONS = hardening=+all".
> 
> Ok, I'll try that.

Even simpler is to set the debhelper compat level to at least 10.  It will
default to enable all hardening.  (I didn't check the current level, but if it
is 10 and there's no hardening, it must have been explicitly disabled somehow.)

> >CuraEngine
> >==
> >
> > * It would be nice to include a manpage explaining what the command
> >   CuraEngine does and the command-line options it accepts. Also it
> >   might be necessary to rename it to "curaengine" for the sake of tab
> >   completion and such, but I'm not sure about this right now.
> 
> This will definitely cause problems with Cura, as it expects the program to
> be named "CuraEngine" and I'd prefer not to modify the upstream sources
> unless it's strictly necessary.
> 
> Also, CuraEngine is a core component of Cura, and while I assume it can be
> used standalone, it's usually not meant to be executed from the command
> line.
> 
> But I can take a look and provide a simple man page, if that's desired.

No, you don't need to do that.  As you say, it's not meant to be used directly.
That means two things: it doesn't need a manpage, and it must not be in the
(default) executable path.  So install it under /usr/lib/cura/ or
/usr/lib/cura-engine/ and make sure the cura package calls it from there.

This means you do need to chan

Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2016-12-19 Thread Gregor Riepl

Hi Rock,


Here are my comments, I must say I don't use the software so I only
checked the building and the packaging. I trust you are testing that
once installed all four packages perform as expected :).


Thanks for the review!
I'll comment below.

> libArcus
> 
>
> debian/changelog
> 
>

 * There seems to be a line in the changelog that is too long, it'd be
   nice to split it into two so it fits into the "80 character limit".


Ok, I thought this wasn't so important, so I ignored the lint warning.
Who still uses a 80-character terminal in this day and age anyway? :)


 * Typically, new packages contain only a single entry with a line
   similar to "Initial Release. Closes: #n". The changelog should
   only contain entries for actually released revisions. In this case,
   if version 2.1.3-1 never made it into Debian it should be removed
   and if version 2.3.0-1 is going to be the first to get into then
   this should be the one and only entry in the changelog.


There is a particular reason why packaged 2.1.3 first:
2.3.0 has several usability problems for me, such as widgets that are cut off 
at the bottom and blurry font rendering. These were not present in 2.1.3.


I still need to test 2.3.1 though, perhaps these problems have been fixed 
already.

Also, when I submitted Cura to Debian Mentors, I hadn't tested 2.3.0 and 2.3.1 
yet and wanted to get feedback on the packaging as a whole first. But I will 
certainly update the changelog accordingly, when review is complete.


> debian/control
> --
>

 * Since "3.0 (quilt)" souce package format it is no longer needed to
   list "quilt" as a build-dependency [1]. Patches can now be handled
   by dpkg-source. In fact you don't even need the "--with quilt" flag
   on debian/rules (I tried removing this flag and it built correctly,
   please let me know if doesn't work for you)


Ok, I didn't know this. Will be corrected.


 * The VCS fields should point to "where the Debian source package is
   developed" [2], that is, where the changes to the debian folder are
   made, which in this case would be your GitHub repository and not
   upstream's.


Ok.


 * Normally, the binary packages providing shared libraries are named
   as "libfooX" where foo would be the name of library and X the
   "major-version" [3]. In your case this would mean that the binary
   package that provides libArcus.so.3 should be named "libarcus3"
   instead of just "libarcus". However I don't quite get what's going
   on with this library's versioning. This packages provides
   "libArcus.so.1.1.0" and a link to it called "libArcus.so.3", is
   there a reason for this? To my understanding the latter should be
   called "libArcus.so.1" and therefore the binary package would end up
   being "libarcus1". Nevertheless, I'm no expert and it seems I'm
   missing something here.


Yes, I noticed the warnings as well.

However, upstream seems to prefer naming and versioning as they are now, so I 
didn't want to change them.
As far as I can tell, this isn't going to be a problem, as there aren't any 
other packages besides Cura that use libArcus anyway.



debian/rules


 * Lintian reports the tags "hardening-no-fortify-functions" and
   "hardening-no-bindnow". There's an ongoing effort to "update as many
   packages as possible to use security hardening build flags". You
   might want to try to deal with it, sometimes it is as "simple" as
   adding "export DEB_BUILD_MAINT_OPTIONS = hardening=+all".


Ok, I'll try that.


debian/watch


 * It'd be nice to include a watch file, some Debian tools rely on this
   file to i.e. estimate the "freshness" of the Debian repository as a
   whole. It should be particularly easy to write a wath file in your
   case since upstream uses GitHub, check out this template [4].


Ok.


debian/patches
--

 * Although not mandatory you might want to adhere to the "Patch
   Tagging Guidelines" [5]


I'll have a look.


CuraEngine
==

 * It would be nice to include a manpage explaining what the command
   CuraEngine does and the command-line options it accepts. Also it
   might be necessary to rename it to "curaengine" for the sake of tab
   completion and such, but I'm not sure about this right now.


This will definitely cause problems with Cura, as it expects the program to be 
named "CuraEngine" and I'd prefer not to modify the upstream sources unless 
it's strictly necessary.


Also, CuraEngine is a core component of Cura, and while I assume it can be 
used standalone, it's usually not meant to be executed from the command line.


But I can take a look and provide a simple man page, if that's desired.


Cura


 * This one I haven't been able to build. I'm attaching the build log.
   It might be an error on my building tool-chain but please check it
   out, just in case. Error shows up around line 583.


Woops, looks like I forgot to merge a patch back into the 2.3.0 branch. On

Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2016-12-19 Thread Rock Storm
Hi Gregor,

Here are my comments, I must say I don't use the software so I only
checked the building and the packaging. I trust you are testing that
once installed all four packages perform as expected :).


libArcus


debian/changelog


 * There seems to be a line in the changelog that is too long, it'd be
   nice to split it into two so it fits into the "80 character limit".

 * Typically, new packages contain only a single entry with a line
   similar to "Initial Release. Closes: #n". The changelog should
   only contain entries for actually released revisions. In this case,
   if version 2.1.3-1 never made it into Debian it should be removed
   and if version 2.3.0-1 is going to be the first to get into then
   this should be the one and only entry in the changelog.


debian/control
--

 * Since "3.0 (quilt)" souce package format it is no longer needed to
   list "quilt" as a build-dependency [1]. Patches can now be handled
   by dpkg-source. In fact you don't even need the "--with quilt" flag
   on debian/rules (I tried removing this flag and it built correctly,
   please let me know if doesn't work for you)
 
 * The VCS fields should point to "where the Debian source package is
   developed" [2], that is, where the changes to the debian folder are
   made, which in this case would be your GitHub repository and not
   upstream's.
 
 * Normally, the binary packages providing shared libraries are named
   as "libfooX" where foo would be the name of library and X the
   "major-version" [3]. In your case this would mean that the binary
   package that provides libArcus.so.3 should be named "libarcus3"
   instead of just "libarcus". However I don't quite get what's going
   on with this library's versioning. This packages provides
   "libArcus.so.1.1.0" and a link to it called "libArcus.so.3", is
   there a reason for this? To my understanding the latter should be
   called "libArcus.so.1" and therefore the binary package would end up
   being "libarcus1". Nevertheless, I'm no expert and it seems I'm
   missing something here.


debian/rules


 * Lintian reports the tags "hardening-no-fortify-functions" and
   "hardening-no-bindnow". There's an ongoing effort to "update as many
   packages as possible to use security hardening build flags". You
   might want to try to deal with it, sometimes it is as "simple" as
   adding "export DEB_BUILD_MAINT_OPTIONS = hardening=+all".


debian/watch


 * It'd be nice to include a watch file, some Debian tools rely on this
   file to i.e. estimate the "freshness" of the Debian repository as a
   whole. It should be particularly easy to write a wath file in your
   case since upstream uses GitHub, check out this template [4].


debian/patches
--

 * Although not mandatory you might want to adhere to the "Patch
   Tagging Guidelines" [5]


CuraEngine
==

 * It would be nice to include a manpage explaining what the command
   CuraEngine does and the command-line options it accepts. Also it
   might be necessary to rename it to "curaengine" for the sake of tab
   completion and such, but I'm not sure about this right now.


Cura


 * This one I haven't been able to build. I'm attaching the build log.
   It might be an error on my building tool-chain but please check it
   out, just in case. Error shows up around line 583.


Regards,

Rock Storm
Debian 3D-Printer Packaging Team

--
[1] https://pkg-perl.alioth.debian.org/howto/quilt.html#The_%22Post-Mod
ern%22_Way_%28%223.0_%28quilt%29%22%29
[2] https://www.debian.org/doc/debian-policy/ch-controlfields.html#s-f-
VCS-fields
[3] https://www.debian.org/doc/debian-policy/ch-sharedlibs.html#s-share
dlibs-runtime
[4] https://wiki.debian.org/debian/watch#GitHub
[5] http://dep.debian.net/deps/dep3/

cura_2.3.0-1_amd64.build
Description: Binary data


signature.asc
Description: This is a digitally signed message part


Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2016-12-18 Thread Gregor Riepl

Hi Alvaro,


I'm sorry it took me this long to start reviewing your work. I was about to
try to build your packages but I haven't been able to figure out how to do it.
How do you build your packages? Do you use git-buildpackage? I'm missing a
branch named "upstream" or something similar. A typical branch layout is
briefly explained here https://wiki.debian.org/3D-printer/gbp.


Sorry about that.

I wasn't very happy with the defaults that gbp assumes, so I named the 
branches a bit differently. IMHO, "master" should be the upstream branch, not 
the debian build branch. I also removed all the upstream branches from my 
repository, so those need to be fetched separately.


This is what you can use to build a certain version:

# or Uranium or CuraEngine or Cura
PACKAGE=libArcus
VERSION=2.1.3
git clone https://github.com/UltiMaker/$PACKAGE
cd $PACKAGE
git remote add onitake https://github.com/onitake/$PACKAGE
git fetch --all
git checkout debian-$VERSION
debian/rules clean
gbp buildpackage --git-upstream-branch=master 
--git-debian-branch=debian-$VERSION --git-upstream-tree=$VERSION


Please note that some of the packages have build dependencies on each other, 
so you need to build libArcus and Uranium first.


Bas requested that I also submit to Debian Mentors, so you can find signed 
source packages here:

https://mentors.debian.net/packages/uploader/onit...@gmail.com

Thanks for reviewing them!
Greg



Bug#706656: [3dprinter-general] Bug#706656: ITP: cura -- Controller for 3D printers

2016-09-22 Thread Bas Wijnen
-BEGIN PGP SIGNED MESSAGE-
Hash: SHA1

Hi Gregor,

On Thu, Sep 22, 2016 at 01:02:26PM +0200, Gregor Riepl wrote:
> > I can help you with that.  If you choose to maintain it in the 3-D printer
> > team, others in the team can also help you out with that.
> 
> Very good, how do I sign up? :)

You'll want to subscribe to the mailing list.  If you tell me your username on
alioth (make one if you don't have one yet), I'll add you as a team member.
You will probably want to read the wiki on our packaging procedures (seems
approximately what you do now, I think).

Thanks,
Bas
-BEGIN PGP SIGNATURE-
Version: GnuPG v1

iQIcBAEBAgAGBQJX4/CRAAoJEJzRfVgHwHE6t0kP/0Z+V6s/qkeBIzf4UTakQPg4
YxrgyyAuCXzx8M83iqCX4EgsLuxkx3iR0JpK/i0n4phXtiCOdr35KMjRslc/r4uy
yeWbrirGAGtEB2e2L+snZYHM0BY6+gZ1V309Wiu90J3hhL9KrspYkMaXDV1+Hdq8
zMdHqpJcNbx+HQOTesQkZN/sDBcLq/ce9OoQEdocrjptU75eMFyLxMTBSWCxmxGM
QKb3pa+ok7YmCYg16Or2l0A7i5gRdCD0+JWb/yqaqF0q5gWCqvBVUbW9fTKHt5oz
vgUUMy8IuGZocBYYIDBbreh8kN31dlR/Zt0JXk0BOjXHhidh0Ofz/UsyMp0Z4VCQ
o3rWmVHT8C+oee5v/2MTTHJsbKsPqI6KoI+anczRZ9aUWiEevRi8fiGX+n1p6oF8
WymckA/aky3MWQ0k1vBzuXN7i2kpETRFB9Ug3Uau6aukpettUMIz64QmtP3kTgOb
WWlwPaeBH+dXzbhIZVLbyme48agmauaH8IJkmCboa06EbugcTNm309jB8Kp+datL
V6fn9Rbq3OOQ6OXLVDaQ+YHWtsGepBZgNGC/GJPe13HrzqLhNp+evcY6kBBy243d
yoqQ3HKcv+rkzc/4bYzCGAKJs+CdPKzp9qegwEwIJnUEK9wRSoj/A/XcJuBgBEyB
06jwZ6ma6I1g6VnHH76l
=TTS/
-END PGP SIGNATURE-