Package a project

Hi, I’m not sure if this’s the right forum. Where should I ask for packaging a project?

Recommend one of the Develpment Forums.
https://forums.opensuse.org/forumdisplay.php/797-Development

If you’re using SUSE Studio which is an online service used to customize openSUSE itself, there is a Forum.
If you’re using Kiwi, which is the offline (local install) version of SUSE Studio, you might post in the general “Programming/Scripting” Forum instead.
If you’re building and packaging a project for openSUSE and might even wish to build for other distros, there is the OBS Forum for questiona about using the Open Build Service

OBS
https://http://openbuildservice.org/
I see a tutorial exists
https://en.opensuse.org/openSUSE:Build_Service_Tutorial

TSU

I’m not who created the project, but I expect it’s going to be a famous one and I hope it’d be packaged for OpenSUSE. Which sub-forum should I use?

not the Forums you can subscribe/post on the message boards (if it’s a popular open source application maybe even file a bug report asking for it) as the developers don’t come here often, this is more of a user base forum.
anyhow if that project has a spec file you can use rpmbuild to package it, if not the developer will need to write a spec file
https://en.opensuse.org/openSUSE:Specfile_guidelines
https://software.opensuse.org/package/rpm-build

Hi
What is the name of the project/package can you provide a link?

It’s CNTK.

Hi
Possibly not with it’s licensing, but I’m no lawyer: Releases · microsoft/CNTK · GitHub

Have you tried building it from source?

I’d recommend seeing how your codebase might be imported into OBS (I listed that resource above). The expected benefit would be that you would be able to build for practically all distros with minimal effort instead of any one or two only.

Skimming your existing project, maybe I didn’t dig deep enough but I only saw a few C code in source, and some test code in python.
The main problem I’d anticipate is that in general anything created and managed in Visual Studio typically has a very strict structure (which has both pros and cons) and relies on Windows libraries(I didn’t find) which if true would require you to find non-Windows equivalents.

CNTK looks interesting, if you’re able to port to Linux, I’d certainly be interested in giving it a whirl.

TSU

I’m not the creator of this project. I hope they’d choose the easiest way to make packages for all distributions.

I didn’t, but I prefer if I can install it like any package. It’d make everything easier.

That project has a strange license it looks like zlib’s it’s nonrestrictive but as it’s from Microsoft I don’t think any Linux distro would touch it, someone could ask microsoft to write a spec file but I doubt they’d do it
building doesn’t seam too dificult
https://github.com/Microsoft/CNTK/wiki/Setup-CNTK-on-Linux
but as it is from MS you can bet they didn’t tell all the needed dependencies so you’d need to run ./configure and see what packages you need to compile it.
you can use check-install to generate an rpm if you want one
https://software.opensuse.org/package/checkinstall

Hi
Yup, plus which areas/professions can use it, on OBS you have no control on the distribution of an rpm and end use… Maybe could be built/hosted on packman…

It can be used for machine learning, deep learning, speech recognition and AI. What does the last sentence mean?

So, could anyone easly make packages and add it to a repository? Look at Packaging CNTK · Issue #268 · microsoft/CNTK · GitHub.

Hi
As they indicate, just use their pre-built binary, all you need to do if it’s like any other (eg adroid-sdk), just extract the tarball and run it as your user, no need to install.

I note the last comment, “observe all the licenses of the components”…

Based on that, not even sure packman would build/host;

no from a quick read of the Linux build how-to it seams this package needs/usees nvidia and amd/ati propitiatory code, there is no chance OBS or packman would host any propitiatory code.
Building seams quite straightforward so you should be able to compile it yourself but you don’t have to Microsoft provides prebuild Linux executables

links are here

for needed packages (like Open MPI, CUDA etc) see this

According to the licensing I’m reading about this software, the project itself is pretty much without restriction but is subject to the licensing terms of its underlying technology which can be read at
https://cntk1bitsgd.codeplex.com/license

Reading through this “restrictive” license, it reads to me almost identical to a GPLv3 license (which has been criticisized as more restrictive than GPLv2). The main differences are that the license clearly define Microsoft as the owner of the licenses rather than some vague original owner. This is not different than other recently open sourced MS technology (which until recently had been strictly proprietary), MS has explained away this modification to claim certain ownership is so that MS becomes the custodian of licensing rights preventing anyone else from abusing or changing terms… Which is a possible outcome of most if not just many standard GPL licenses. Many of the standard GPL licenses permit bolting on additional software and distributing as a new all-encompasing package, and in those cases the new package becomes a kind of “split licensing” where the original open source is still subject to its licensing but the new code can be licensed in any way including highly restrictively.

The main question in my mind is that part of the license says the terms apply to “non-commercial” use, but then goes on and never describes the terms for commercial use. So, I guess the specified licensing applies clearly to private use, but you might need to talk to Microsoft about any other uses… eg distributing publicly for free in unaltered form(my guess that would be OK) or if you intend to create a commercial product using the code(my guess would require a special license from MS).

So, depending on how you view how open licenses work, the MS version might actually be less restrictive… It just “depends.” Depends on what new Developers are trying to do (Removes the capitalistic incentive and opportunity to charge money for contributions), but of course is subject to Microsoft management which many are very suspicious.

I agree that many if not all Linux distros will reject any package which has any kind of Microsoft licensing, but I doubt that should get in the way of using OBS (but I can’t speak for OBS. OBS can make any decision it wants based on their criteria). And, if packages are built using OBS, then a private “User” or “Community” repo of its own is created which can be used by any distro and doesn’t have to be accepted into any distro’s main repos.

IMO,
TSU

On Wed 23 Mar 2016 04:06:02 PM CDT, tsu2 wrote:

According to the licensing I’m reading about this software, the project
itself is pretty much without restriction but is subject to the
licensing terms of its underlying technology which can be read at
https://cntk1bitsgd.codeplex.com/license

Reading through this “restrictive” license, it reads to me almost
identical to a GPLv3 license (which has been criticisized as more
restrictive than GPLv2). The main differences are that the license
clearly define Microsoft as the owner of the licenses rather than some
vague original owner. This is not different than other recently open
sourced MS technology (which until recently had been strictly
proprietary), MS has explained away this modification to claim its
certain ownership is so that MS becomes the custodian of licensing
rights preventing anyone else from abusing or changing terms… Which is
a possible outcome of most if not just many standard GPL licenses. Many
of the standard GPL licenses permit bolting on additional software and
distributing as a package, and in those cases the new package becomes a
kind of “split licensing” where the original open source is still
subject to its licensing but the new code can be licensed in any way
including highly restrictively.

So, depending on how you view how open licenses work, the MS version
might actually be less restrictive… It just “depends.” Depends on what
new Developers are trying to do (Removes the capitalisitic incentive and
opportunity to charge money for contributions), but of course is subject
to Microsoft management which many are very suspicious.

I agree that many if not all Linux distros will reject any package which
has any kind of Microsoft licensing, but I doubt that should get in the
way of using OBS (but I can’t speak for OBS. OBS can make any decision
it wants based on their criteria). And, if packages are built using OBS,
then a private “User” or “Community” repo of its own is created which
can be used by any distro and doesn’t have to be accepted into any
distro’s main repos.

IMO,
TSU

Hi
There is also this one involved…
https://cntk1bitsgd.codeplex.com/license

It’s the distribution part (eg rpm) as well, since there is no guarantee
a corporate entity (a commercial purpose) won’t download and use…

Maybe the Science or Educational repo maintainers will build…


Cheers Malcolm °¿° LFCS, SUSE Knowledge Partner (Linux Counter #276890)
SUSE Linux Enterprise Desktop 12 SP1|GNOME 3.10.4|3.12.53-60.30-default
If you find this post helpful and are logged into the web interface,
please show your appreciation and click on the star below… Thanks!

Yes, that one is specific to the actual underlying technology, I don’t remember how the cntk project linked to the license I referenced, but to my eye both references’ content is identical.

TSU

May you explain to me the first paragraph?
Regarding building, I haven’t built a package before for rpm, but I’ll try to do my best to help.
How to find a repository maintainer? I searched, but I could only find OBS, repository links or some maintainer user.

I still think you don’t understand
because of the strict and non free license this can not be hosted on OBS (it uses nvidia and ati code that are non free), this is kind of free for non commercial use only it is not a true FOSS license like gpl or lgpl.
You do not have to build anything Microsoft already compiled a 64bit Linux application, here’s the link
https://github.com/Microsoft/CNTK/releases/download/r2016-02-08/CNTK-2016-02-08-Linux-64bit-CPU-Only.tar.gz
actually there are 3 versions, one with no gpu acceleration and 2 with gpu acceleration see this site for more info and links to all the versions

all you have to do is uncompress it in a folder in your home and run it, read the readme file.