Practical Problems with distribution D projects
Dicebot
public at dicebot.lv
Tue Feb 25 14:41:58 PST 2014
On Tuesday, 25 February 2014 at 16:04:56 UTC, Assaf Gordon wrote:
> But I think "harming the ecosystem" is a bit of a hyperbole -
> in an ideal world where Linux Distros contain every piece of
> software (and up to date version), there is indeed very little
> need to install from source.
Apologise for overly harsh reaction, it is rather frequent source
of frustration for me which makes reaction unacceptably nervous.
That "ideal" state is pretty much in your hands. There are as
many packages in repos as people are willing to put - not like
there is some important boss who decides what needs to be
packages.
I know it is not very convenient with Debian because of how
conservative it is but in Arch just asking in #archlinux @
freenode is likely to result in kind soul willing to help with
packaging questions. Or even easier, just contacting me as it is
my direct responsibility to maintain all D-related projects in
Arch [community] ;)
As general rule of a thumb - if you application is useful, there
always be someone willing to maintain package for it, assuming
build process is not utterly insane.
> But there are several real-world constraints, at least in the
> environment I work in:
>
> 1. Software needs to run on variety of servers and
> distributions, some are very old (e.g. CentOS 5.4 or Ubuntu
> 10.04).
> Upgrading is not an option for these environments.
>
> 2. Software needs to be installed without root - to a user
> directory (i.e. using "configure --prefix" or similar).
>
> 3. Software is updated too frequently, or is too new, or
> (sadly) too experimental (code-wise) for inclusion in a stable
> distribution package - but it still needs to be used.
>
> 4. It takes time for a software to be properly packaged, and
> users want to install it now. Also - it will not be available
> in the "stable" branch of the distribution.
I see, your requirements do not match use case of a typical
desktop application. However, if you are fine with full static
linking why not simply distribute binary tarballs for set of
systems you want to support? It will put burden of having proper
D compilation environment away from the end user.
It is worth noting though that for any normal application
requiring package manager access (not full root) is expected and
desired. Fast update issue can be solved by providing own
upstream repository (i.e. launchpad)
> If there is already a package in official Debian which is
> written in D, it would be very helpful to see an example of the
> packaging process.
Unfortunately all Debian/Ubuntu D packages I am aware about are
found in non-official repo maintained by Jordi :
http://d-apt.sourceforge.net/
Debian is probably hardest distro out there to deal with this
kind of stuff.
> I'm not sure I understand this statement.
> If I link with "gcc -static" and my program is properly built,
> the resulting binary does not require any library, not even
> glibc.
> It uses only Linux ABI syscalls.
> Unless I'm mistaken?
I think it will work but I'd recommend to provide an option to
build system to chose both dynamically and statically linked
binary to simplify life for those who _may_ want to package it
later.
> Not sure what the "windows attitude" is, since I haven't
> developed software for windows in 12 years...
I was referring to extremely common attempts to provide
all-in-one "installers" ignoring normal practices of target
systems that often happen when those used to Windows world start
porting their stuff to Linux. And/or thinking about all distros
as single target "Linux" system.
> My first choice would be to have a project in D which is easily
> compilable from source code.
> Either with "make" or "dub" or "configure" or anything else.
> Once I have that, packaging (for a linux distribution) is
> straight forward, and so is adding it to HomeBrew/LinuxBrew.
dub is the way to go in general, but it is not expected to be
ever installed on user systems (well, unless it is Gentoo :)) -
it is to be used by you or anyone willing to (re)package your
application.
> The alternative (for linux) is distributing a binary program,
> and for that, a static-binary is much more portable than a
> dynamic one.
Within your requirements it may be a best choice. In general
though I'd say that perfect portability is a flaw rather than
merit. When speaking about desktop applications, for exampe, as a
user of any operating systems I usually want software that is
adapted to conform practices of this specific system and hardly
appreciate how portable it is.
More information about the Digitalmars-d
mailing list