www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - LDC blacklisted in Ubuntu

reply "Joseph Rushton Wakeling" <joseph.wakeling webdrake.net> writes:
Some rather urgent news: LDC has just been blacklisted in Ubuntu.
https://bugs.launchpad.net/ubuntu/+source/ldc/+bug/941549

This seems to be entirely down to no one keeping the Debian 
universe up to date with the latest LDC work. :-(

Could someone on the LDC team get in touch with Ubuntu and see 
what can be done about this?
Sep 20 2012
next sibling parent reply "David Nadlinger" <see klickverbot.at> writes:
On Thursday, 20 September 2012 at 17:26:25 UTC, Joseph Rushton 
Wakeling wrote:
 Some rather urgent news: LDC has just been blacklisted in 
 Ubuntu.

It is not really news, as the LDC version in the Debian repo has not been updated for ages. But yes, it would definitely be important to have an LDC package in as many distribution repos as possible.
 This seems to be entirely down to no one keeping the Debian 
 universe up to date with the latest LDC work. :-(

 Could someone on the LDC team get in touch with Ubuntu and see 
 what can be done about this?

As far as I see, we would at the very least need somebody to maintain the Debian/Ubuntu packages for this. Unfortunately, nobody on the core dev team uses Ubuntu for their daily work, or has other experiences with Debian packages. It would be great if somebody from the D community experienced in packaging could jump in to help us on this front. We'd be happy to help with any questions, and I don't think the packaging process should be particularly difficult (LDC builds fine on Ubuntu, and Arch and Fedora are already shipping recent versions). The thing is just that creating good packages for a system you are not intimately familiar with is quite hard, and we are already chronically lacking manpower anyway. David
Sep 20 2012
next sibling parent Walter Bright <newshound2 digitalmars.com> writes:
On 9/20/2012 1:08 PM, Jonas Drewsen wrote:
 On Thursday, 20 September 2012 at 18:03:18 UTC, David Nadlinger wrote:
 On Thursday, 20 September 2012 at 17:26:25 UTC, Joseph Rushton Wakeling wrote:
 Some rather urgent news: LDC has just been blacklisted in Ubuntu.

It would be great if somebody from the D community experienced in packaging could jump in to help us on this front.

I've done some debs before and might be able to find some time to do it depending on how complex the package is. I haven't tried LDC before though. Can you provide some info on how to get started with the LDC building/packaging?

Perhaps the deb building script written by Jordi for dmd can be helpful as a guide? https://github.com/D-Programming-Language/installer
Sep 23 2012
prev sibling next sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-09-27 09:02, Iain Buclaw wrote:

 For #4, yes.  Ubuntu is a better platform to approach for externally
 built binary-only packages.  But for debian, you could possibly do
 something similar to how eg: the flash-plugin installer package works
 - downloads the tar.gz/zip from an external site, extract and install
 / configure in system.

Sorry for hijacking this thread a bit but it would be nice with pre-built binaries of both ldc and gdc. I'm planning to add ldc and gdc to DVM sometime in the future. -- /Jacob Carlborg
Sep 27 2012
prev sibling next sibling parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Thu, Sep 27, 2012 at 11:46:12AM +0200, Joseph Rushton Wakeling wrote:
 On 27/09/12 09:20, Brad Roberts wrote:
On reflection, #4 is not going to work for dmd.. neither ubuntu nor
debian, nor most distributions are going to be happy with the license
situation.

Would Debian have a problem with a dmd package in non-free?

You'd have to ask the debian-legal mailing list for the official decision. But just to note, non-free is officially *not* a part of Debian, so it can contain anything that can be legally redistributed. T -- Never step over a puddle, always step around it. Chances are that whatever made it is still dripping.
Sep 27 2012
prev sibling parent Jacob Carlborg <doob me.com> writes:
On 2012-09-27 11:46, Joseph Rushton Wakeling wrote:

 Would Debian have a problem with a dmd package in non-free?  Would
 Ubuntu have a problem with it in the multiverse or partner repositories?

Doesn't at least Ubuntu proprietary software, like drivers? -- /Jacob Carlborg
Sep 27 2012
prev sibling next sibling parent "Jonas Drewsen" <jdrewsen nospam.com> writes:
On Thursday, 20 September 2012 at 18:03:18 UTC, David Nadlinger 
wrote:
 On Thursday, 20 September 2012 at 17:26:25 UTC, Joseph Rushton 
 Wakeling wrote:
 Some rather urgent news: LDC has just been blacklisted in 
 Ubuntu.

It would be great if somebody from the D community experienced in packaging could jump in to help us on this front.

I've done some debs before and might be able to find some time to do it depending on how complex the package is. I haven't tried LDC before though. Can you provide some info on how to get started with the LDC building/packaging? /Jonas
Sep 20 2012
prev sibling next sibling parent "David Nadlinger" <see klickverbot.at> writes:
On Thursday, 20 September 2012 at 18:03:18 UTC, David Nadlinger 
wrote:
 Unfortunately, nobody on the core dev team uses Ubuntu for 
 their daily work, or has other experiences with Debian packages.

I didn't mean "packages" of course, but "packaging". Knowing how to use dpkg or build the occasional .deb is one thing, but knowing the Debian conventions enough to get a new package accepted is an entirely different one. David
Sep 20 2012
prev sibling next sibling parent "David Nadlinger" <see klickverbot.at> writes:
On Thursday, 20 September 2012 at 20:07:56 UTC, Jonas Drewsen 
wrote:
 I've done some debs before and might be able to find some time 
 to do it depending on how complex the package is.

 I haven't tried LDC before though. Can you provide some info on 
 how to get started with the LDC building/packaging?

This would be great! The build process really shouldn't be more complicated than fetching sources and submodules from https://github.com/ldc-developers/ldc, running CMake and then "make install". See the README for a short description and a link to a longer one. Packaging shouldn't really be any more difficult than that either, as we are using a pretty standard build system and have no exotic dependencies. Here are the Fedora and Arch package sources, maybe they are helpful: https://admin.fedoraproject.org/pkgdb/acls/name/ldc https://projects.archlinux.org/svntogit/community.git/tree/trunk/PKGBUILD?h=packages/ldc David
Sep 20 2012
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 20/09/12 19:04, David Nadlinger wrote:
 On Thursday, 20 September 2012 at 17:26:25 UTC, Joseph Rushton Wakeling wrote:
 Some rather urgent news: LDC has just been blacklisted in Ubuntu.

It is not really news, as the LDC version in the Debian repo has not been updated for ages.

It's not news that the package is out of date, but it _is_ news that the package has been blacklisted, and very unwelcome news, because it could make it much more difficult to get an updated package included.
 But yes, it would definitely be important to have an LDC
 package in as many distribution repos as possible.

I'd add here that you're talking about by far the most widely used distro.
 As far as I see, we would at the very least need somebody to maintain the
 Debian/Ubuntu packages for this. Unfortunately, nobody on the core dev team
uses
 Ubuntu for their daily work, or has other experiences with Debian packages.

 It would be great if somebody from the D community experienced in packaging
 could jump in to help us on this front. We'd be happy to help with any
 questions, and I don't think the packaging process should be particularly
 difficult (LDC builds fine on Ubuntu, and Arch and Fedora are already shipping
 recent versions). The thing is just that creating good packages for a system
you
 are not intimately familiar with is quite hard, and we are already chronically
 lacking manpower anyway.

Isn't it worth someone from the LDC team discussing with the Ubuntu people concerned (e.g. the person who decided to blacklist the package) and try and get their feedback and advice on packaging? My experience is that the Ubuntu team are fairly friendly and helpful. AFAICS the reason this situation has arisen is because you've got a bug on Launchpad that never got communicated as far as the LDC devs. Opening that channel of communication could help prevent something like this happening again.
Sep 21 2012
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Fri, 2012-09-21 at 21:00 +0100, Joseph Rushton Wakeling wrote:
[=E2=80=A6]
 Isn't it worth someone from the LDC team discussing with the Ubuntu peopl=

 concerned (e.g. the person who decided to blacklist the package) and try =

 their feedback and advice on packaging?  My experience is that the Ubuntu=

 are fairly friendly and helpful.

Perhaps even better talk with the Debian people to find a route into the Debian repository, which then automatically gets to be part of Ubuntu and Mint. =20
 AFAICS the reason this situation has arisen is because you've got a bug o=

 Launchpad that never got communicated as far as the LDC devs.  Opening th=

 channel of communication could help prevent something like this happening=

Indeed. --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Sep 22 2012
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 22/09/12 11:13, Russel Winder wrote:
 Perhaps even better talk with the Debian people to find a route into the
 Debian repository, which then automatically gets to be part of Ubuntu
 and Mint.

In the bigger picture yes, but as in this case it's Ubuntu that's blacklisted the package, probably best to go straight to them. There may also be a benefit in having a direct relationship with Ubuntu because their more frequent release cycle may make it easier to ensure the most up-to-date package is out there. IIRC their relationship with most packages in Debian is to take a snapshot of Sid at a particular point in time, so if you've got a new release of LDC after that snapshot is taken, it may be passed over unless you go to Ubuntu directly.
Sep 23 2012
prev sibling next sibling parent "David Nadlinger" <see klickverbot.at> writes:
On Friday, 21 September 2012 at 19:59:36 UTC, Joseph Rushton 
Wakeling wrote:
 I'd add here that you're talking about by far the most widely 
 used distro.
 […]
 Isn't it worth someone from the LDC team discussing with the 
 Ubuntu people concerned (e.g. the person who decided to 
 blacklist the package) and try and get their feedback and 
 advice on packaging?  My experience is that the Ubuntu team are 
 fairly friendly and helpful.

I don't doubt that distro packages are vital for providing a smooth experience for Linux users. However, and this is unfortunately a big "however", at the same time I don't think I will be able to look into providing those packages myself any time soon (besides for Arch, but that front is already covered; big thanks to Sven/svenstaro!), simply because I'm happy if I find enough time to look into any LDC issues whatsoever at all right now. Joseph, Russel, you seem to be both personally interested in D/LDC and quite knowledgeable about Debian-style packaging. Might I suggest that you think about joining the LDC forces as a package maintainer? It certainly isn't a huge amount of work to do, but many small items also add up… Thanks, David
Sep 26 2012
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 26 September 2012 16:46, David Nadlinger <see klickverbot.at> wrote:
 On Friday, 21 September 2012 at 19:59:36 UTC, Joseph Rushton Wakeling wro=

 I'd add here that you're talking about by far the most widely used distr=


 [=85]
 Isn't it worth someone from the LDC team discussing with the Ubuntu peop=


 concerned (e.g. the person who decided to blacklist the package) and try=


 get their feedback and advice on packaging?  My experience is that the
 Ubuntu team are fairly friendly and helpful.

I don't doubt that distro packages are vital for providing a smooth experience for Linux users. However, and this is unfortunately a big "however", at the same time I don't think I will be able to look into providing those packages myself any time soon (besides for Arch, but that front is already covered; big thanks to Sven/svenstaro!), simply because =

 happy if I find enough time to look into any LDC issues whatsoever at all
 right now.

 Joseph, Russel, you seem to be both personally interested in D/LDC and qu=

 knowledgeable about Debian-style packaging. Might I suggest that you thin=

 about joining the LDC forces as a package maintainer? It certainly isn't =

 huge amount of work to do, but many small items also add up=85

 Thanks,
 David

Was it Mattias or Arthur who was the last maintainer? I could probably pull some strings with them to pass it down to a more active / willing maintainer. Heck, I don't mind putting my name down as the package maintainer. Regards --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Sep 26 2012
prev sibling next sibling parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Wed, Sep 26, 2012 at 06:11:08PM +0100, Iain Buclaw wrote:
 On 26 September 2012 16:46, David Nadlinger <see klickverbot.at> wrote:

 Joseph, Russel, you seem to be both personally interested in D/LDC
 and quite knowledgeable about Debian-style packaging. Might I
 suggest that you think about joining the LDC forces as a package
 maintainer? It certainly isn't a huge amount of work to do, but many
 small items also add up…

 Thanks,
 David

Was it Mattias or Arthur who was the last maintainer? I could probably pull some strings with them to pass it down to a more active / willing maintainer. Heck, I don't mind putting my name down as the package maintainer.

I'm willing to sponsor uploads. I just don't have the time/patience to play around with LDC (or GDC) packaging right now. T -- I am Ohm of Borg. Resistance is voltage over current.
Sep 26 2012
prev sibling next sibling parent Brad Roberts <braddr puremagic.com> writes:
On Wed, 26 Sep 2012, Iain Buclaw wrote:
 On 26 September 2012 16:46, David Nadlinger <see klickverbot.at> wrote:
 On Friday, 21 September 2012 at 19:59:36 UTC, Joseph Rushton Wakeling wrote:
 I'd add here that you're talking about by far the most widely used distro.
 [?]
 Isn't it worth someone from the LDC team discussing with the Ubuntu people
 concerned (e.g. the person who decided to blacklist the package) and try and
 get their feedback and advice on packaging?  My experience is that the
 Ubuntu team are fairly friendly and helpful.

I don't doubt that distro packages are vital for providing a smooth experience for Linux users. However, and this is unfortunately a big "however", at the same time I don't think I will be able to look into providing those packages myself any time soon (besides for Arch, but that front is already covered; big thanks to Sven/svenstaro!), simply because I'm happy if I find enough time to look into any LDC issues whatsoever at all right now. Joseph, Russel, you seem to be both personally interested in D/LDC and quite knowledgeable about Debian-style packaging. Might I suggest that you think about joining the LDC forces as a package maintainer? It certainly isn't a huge amount of work to do, but many small items also add up? Thanks, David

Was it Mattias or Arthur who was the last maintainer? I could probably pull some strings with them to pass it down to a more active / willing maintainer. Heck, I don't mind putting my name down as the package maintainer. Regards -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';

I have on my personal todo list a few major items (among many others): 1) add support for multiple projects (dmd2 being the only one currently) 2) add packaging of built artifacts for master builds 3) add uploading of packaged builds to github 4) on-demand builds of specific tags -- intended for release builds I have made some of the internal cleanups to the build server to prepare for #1, but there's still a lot to do, though mostly in the administrative interfaces, not _that_ much on the get things to run a build side. It's been my intent to use gdc and/or ldc as the first examples of non-dmd projects supported by the auto-tester. The result of the above features would be that releases would be fully automated, at least from the point of tag creation through uploaded and publically available packages. I don't know what's involved in getting built-packages into the various distributions. I suspect that a number of them prefer to be built by their own automation from original (or forked) sources. I'd be happy to engage with the appropriate people to explore ways to work together in this space. No promises on any delivery dates, but work is in progress. Thoughts? Later, Brad
Sep 26 2012
prev sibling next sibling parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Wed, Sep 26, 2012 at 05:58:08PM -0700, Brad Roberts wrote:
[...]
 I don't know what's involved in getting built-packages into the
 various distributions.  I suspect that a number of them prefer to be
 built by their own automation from original (or forked) sources.  I'd
 be happy to engage with the appropriate people to explore ways to work
 together in this space.

For Debian, the process is relatively simple: 1) Create a debian/ subdir in the source tree, with appropriate control files (for existing packages, this has already been done) a) Update debian/changelog to reflect the new version number. b) Adjust any necessary dependencies, etc., in debian/control. 2) Build the package by running 'dpkg-buildpackage ...' in the source tree. This creates a bunch of files (including the binary .deb) in the parent directory. 3) [Optional] Preferably, test the .deb to make sure it doesn't cause massive system breakage. 4) Upload the generated package files in the parent directory by the build process, either by sending it to a sponsor or uploading it directly to the upload queue if you have upload access. The dupload script automatically determines which file(s) should be uploaded. Once the package is uploaded successfully, the autobuilder infrastructure can be used to build the package for the umpteen architectures that Debian supports. IIRC, once the package gets into the Debian archive it will eventually find its way into Ubuntu (and possibly the other Debian derivatives). T -- VI = Visual Irritation
Sep 26 2012
prev sibling next sibling parent Brad Roberts <braddr puremagic.com> writes:
On Wed, 26 Sep 2012, H. S. Teoh wrote:

 On Wed, Sep 26, 2012 at 05:58:08PM -0700, Brad Roberts wrote:
 [...]
 I don't know what's involved in getting built-packages into the
 various distributions.  I suspect that a number of them prefer to be
 built by their own automation from original (or forked) sources.  I'd
 be happy to engage with the appropriate people to explore ways to work
 together in this space.

For Debian, the process is relatively simple: 1) Create a debian/ subdir in the source tree, with appropriate control files (for existing packages, this has already been done) a) Update debian/changelog to reflect the new version number. b) Adjust any necessary dependencies, etc., in debian/control. 2) Build the package by running 'dpkg-buildpackage ...' in the source tree. This creates a bunch of files (including the binary .deb) in the parent directory. 3) [Optional] Preferably, test the .deb to make sure it doesn't cause massive system breakage. 4) Upload the generated package files in the parent directory by the build process, either by sending it to a sponsor or uploading it directly to the upload queue if you have upload access. The dupload script automatically determines which file(s) should be uploaded. Once the package is uploaded successfully, the autobuilder infrastructure can be used to build the package for the umpteen architectures that Debian supports. IIRC, once the package gets into the Debian archive it will eventually find its way into Ubuntu (and possibly the other Debian derivatives).

That works well for packages which are single source tree. The current dmd, druntime, phobos, d-programming-language, tools separation makes that a little more challenging to put together, but not a lot. It's probably worth doing regardless. I realize that gdc and ldc are both in better shape in this area already. #4 there implies it's a source package, though I could be mis-interpreting you. Is there a path for externally built binary packages? That's fairly counter to the general distribution philosophy for most of them, so I'm giong to guess no. Thanks, Brad
Sep 26 2012
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 27 September 2012 03:14, Brad Roberts <braddr puremagic.com> wrote:
 On Wed, 26 Sep 2012, H. S. Teoh wrote:

 On Wed, Sep 26, 2012 at 05:58:08PM -0700, Brad Roberts wrote:
 [...]
 I don't know what's involved in getting built-packages into the
 various distributions.  I suspect that a number of them prefer to be
 built by their own automation from original (or forked) sources.  I'd
 be happy to engage with the appropriate people to explore ways to work
 together in this space.

For Debian, the process is relatively simple: 1) Create a debian/ subdir in the source tree, with appropriate control files (for existing packages, this has already been done) a) Update debian/changelog to reflect the new version number. b) Adjust any necessary dependencies, etc., in debian/control. 2) Build the package by running 'dpkg-buildpackage ...' in the source tree. This creates a bunch of files (including the binary .deb) in the parent directory. 3) [Optional] Preferably, test the .deb to make sure it doesn't cause massive system breakage. 4) Upload the generated package files in the parent directory by the build process, either by sending it to a sponsor or uploading it directly to the upload queue if you have upload access. The dupload script automatically determines which file(s) should be uploaded. Once the package is uploaded successfully, the autobuilder infrastructure can be used to build the package for the umpteen architectures that Debian supports. IIRC, once the package gets into the Debian archive it will eventually find its way into Ubuntu (and possibly the other Debian derivatives).

That works well for packages which are single source tree. The current dmd, druntime, phobos, d-programming-language, tools separation makes that a little more challenging to put together, but not a lot. It's probably worth doing regardless. I realize that gdc and ldc are both in better shape in this area already. #4 there implies it's a source package, though I could be mis-interpreting you. Is there a path for externally built binary packages? That's fairly counter to the general distribution philosophy for most of them, so I'm giong to guess no. Thanks, Brad

For #4, yes. Ubuntu is a better platform to approach for externally built binary-only packages. But for debian, you could possibly do something similar to how eg: the flash-plugin installer package works - downloads the tar.gz/zip from an external site, extract and install / configure in system. Regards -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Sep 27 2012
prev sibling next sibling parent Brad Roberts <braddr puremagic.com> writes:
On 9/27/2012 12:02 AM, Iain Buclaw wrote:
 On 27 September 2012 03:14, Brad Roberts <braddr puremagic.com> wrote:
 #4 there implies it's a source package, though I could be mis-interpreting
 you.  Is there a path for externally built binary packages?  That's fairly
 counter to the general distribution philosophy for most of them, so I'm
 giong to guess no.

For #4, yes. Ubuntu is a better platform to approach for externally built binary-only packages. But for debian, you could possibly do something similar to how eg: the flash-plugin installer package works - downloads the tar.gz/zip from an external site, extract and install / configure in system.

On reflection, #4 is not going to work for dmd.. neither ubuntu nor debian, nor most distributions are going to be happy with the license situation. Nor are they happy with binary only packages anyway. The right path is to do #4 but only for use on the dlang.org site (hosted via github's downloads api). Then, add step #5 which is to automate source bundling and pushing to distributions. Focusing back on gdc, what do you currently have in the way of build/test infrastructure today? I poked around the website and wiki and didn't see anything obvious (not that the dmd side is terribly obvious either). If you want to take this offline, feel free to send me mail directly. - Brad
Sep 27 2012
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 27/09/12 09:20, Brad Roberts wrote:
 On reflection, #4 is not going to work for dmd.. neither ubuntu nor debian,
nor most distributions are going to be happy
 with the license situation.

Would Debian have a problem with a dmd package in non-free? Would Ubuntu have a problem with it in the multiverse or partner repositories?
Sep 27 2012
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 26/09/12 17:46, David Nadlinger wrote:
 Joseph, Russel, you seem to be both personally interested in D/LDC and quite
 knowledgeable about Debian-style packaging. Might I suggest that you think
about
 joining the LDC forces as a package maintainer? It certainly isn't a huge
amount
 of work to do, but many small items also add up…

I'd love to, but it would be irresponsible to commit to it as (right now especially) I don't have a very good idea of what time I'll be able to offer. I also managed to royally screw up when going through beginners' packaging instructions for Ubuntu, so I'm not sure I'm the best choice here ... :-\
Sep 27 2012
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 27 September 2012 11:02, Joseph Rushton Wakeling
<joseph.wakeling webdrake.net> wrote:
 On 26/09/12 17:46, David Nadlinger wrote:
 Joseph, Russel, you seem to be both personally interested in D/LDC and
 quite
 knowledgeable about Debian-style packaging. Might I suggest that you thi=


 about
 joining the LDC forces as a package maintainer? It certainly isn't a hug=


 amount
 of work to do, but many small items also add up=85

I'd love to, but it would be irresponsible to commit to it as (right now especially) I don't have a very good idea of what time I'll be able to offer. I also managed to royally screw up when going through beginners' packagin=

 instructions for Ubuntu, so I'm not sure I'm the best choice here ... :-\

I'd advise to retrieve the LLVM source package and tailor for LDC instead rather than building from scratch. --=20 Iain Buclaw *(p < e ? p++ : p) =3D (c & 0x0f) + '0';
Sep 27 2012
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 27/09/12 12:11, Iain Buclaw wrote:
 I also managed to royally screw up when going through beginners' packaging
 instructions for Ubuntu, so I'm not sure I'm the best choice here ... :-\

I'd advise to retrieve the LLVM source package and tailor for LDC instead rather than building from scratch.

I wasn't even trying to build LDC at the time, just going through some "new to packaging" instructions on Launchpad. BTW when you say "Tailor for LDC" what do you mean? Isn't the LDC package meant to build against the target system LLVM?
Sep 27 2012
prev sibling next sibling parent Iain Buclaw <ibuclaw ubuntu.com> writes:
On 27 September 2012 11:27, Joseph Rushton Wakeling
<joseph.wakeling webdrake.net> wrote:
 On 27/09/12 12:11, Iain Buclaw wrote:
 I also managed to royally screw up when going through beginners'
 packaging
 instructions for Ubuntu, so I'm not sure I'm the best choice here ... :-\

I'd advise to retrieve the LLVM source package and tailor for LDC instead rather than building from scratch.

I wasn't even trying to build LDC at the time, just going through some "new to packaging" instructions on Launchpad. BTW when you say "Tailor for LDC" what do you mean? Isn't the LDC package meant to build against the target system LLVM?

I meant clang. :-) The source package for clang has mostly everything set-up for you. Source deps, Binary deps, etc. I'd imagine the build process would be similar, just a case of replacing the clang sources with ldc, and tweaking the rules file to pick up ldc-specific installed files to package. -- Iain Buclaw *(p < e ? p++ : p) = (c & 0x0f) + '0';
Sep 27 2012
prev sibling next sibling parent "David Nadlinger" <see klickverbot.at> writes:
On Thursday, 27 September 2012 at 10:43:08 UTC, Iain Buclaw wrote:
 I meant clang. :-)

Clang is an entirely different story, because it is built as part of the LLVM source tree/build process, checked out into llvm/tools/clang (at least usually, don't know if it's possible to build it separately)… David
Sep 27 2012
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 27/09/12 12:43, Iain Buclaw wrote:
 The source package for clang has mostly everything set-up for you.
 Source deps, Binary deps, etc.  I'd imagine the build process would be
 similar, just a case of replacing the clang sources with ldc, and
 tweaking the rules file to pick up ldc-specific installed files to
 package.

On a related note ... can we expect to see an updated GDC package in Quantal?
Sep 27 2012
prev sibling next sibling parent "David Nadlinger" <see klickverbot.at> writes:
On Thursday, 27 September 2012 at 02:07:32 UTC, Brad Roberts 
wrote:
 That works well for packages which are single source tree.  The 
 current
 dmd, druntime, phobos, d-programming-language, tools separation 
 makes that
 a little more challenging to put together, but not a lot.  It's 
 probably
 worth doing regardless.  I realize that gdc and ldc are both in 
 better
 shape in this area already.

Yep, for LDC "cmake . && make install" should be enough to build and install a working D2 compiler, including druntime and Phobos. David
Sep 27 2012
prev sibling next sibling parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Wed, Sep 26, 2012 at 07:14:12PM -0700, Brad Roberts wrote:
 On Wed, 26 Sep 2012, H. S. Teoh wrote:
 
 On Wed, Sep 26, 2012 at 05:58:08PM -0700, Brad Roberts wrote:
 [...]
 I don't know what's involved in getting built-packages into the
 various distributions.  I suspect that a number of them prefer to
 be built by their own automation from original (or forked)
 sources.  I'd be happy to engage with the appropriate people to
 explore ways to work together in this space.

For Debian, the process is relatively simple: 1) Create a debian/ subdir in the source tree, with appropriate control files (for existing packages, this has already been done) a) Update debian/changelog to reflect the new version number. b) Adjust any necessary dependencies, etc., in debian/control. 2) Build the package by running 'dpkg-buildpackage ...' in the source tree. This creates a bunch of files (including the binary .deb) in the parent directory. 3) [Optional] Preferably, test the .deb to make sure it doesn't cause massive system breakage. 4) Upload the generated package files in the parent directory by the build process, either by sending it to a sponsor or uploading it directly to the upload queue if you have upload access. The dupload script automatically determines which file(s) should be uploaded. Once the package is uploaded successfully, the autobuilder infrastructure can be used to build the package for the umpteen architectures that Debian supports. IIRC, once the package gets into the Debian archive it will eventually find its way into Ubuntu (and possibly the other Debian derivatives).

That works well for packages which are single source tree. The current dmd, druntime, phobos, d-programming-language, tools separation makes that a little more challenging to put together, but not a lot. It's probably worth doing regardless. I realize that gdc and ldc are both in better shape in this area already.

You can always have separate packages that depend on each other.
 #4 there implies it's a source package, though I could be mis-interpreting 
 you.  Is there a path for externally built binary packages?  That's fairly 
 counter to the general distribution philosophy for most of them, so I'm 
 giong to guess no.

As Iain said, you could follow the path of flash-installer-nonfree, which just contains a script that downloads the binaries from some URL upon installation. Of course, you'd still have to make sure that the downloaded binaries are installed in the correct places[1]. [1] See: http://wiki.debian.org/FilesystemHierarchyStandard T -- INTEL = Only half of "intelligence".
Sep 27 2012
prev sibling next sibling parent "H. S. Teoh" <hsteoh quickfur.ath.cx> writes:
On Thu, Sep 27, 2012 at 12:20:46AM -0700, Brad Roberts wrote:
 On 9/27/2012 12:02 AM, Iain Buclaw wrote:

 For #4, yes.  Ubuntu is a better platform to approach for externally
 built binary-only packages.  But for debian, you could possibly do
 something similar to how eg: the flash-plugin installer package works
 - downloads the tar.gz/zip from an external site, extract and install
 / configure in system.

On reflection, #4 is not going to work for dmd.. neither ubuntu nor debian, nor most distributions are going to be happy with the license situation. Nor are they happy with binary only packages anyway. The right path is to do #4 but only for use on the dlang.org site (hosted via github's downloads api). Then, add step #5 which is to automate source bundling and pushing to distributions.

Yeah that's the other way to do it: build your own .deb's, and create an apt repository on dlang.org (or somewhere), then publish the repository URL. Then users can simply add the URL to /etc/apt/sources.list, and they will be able to use apt-get/aptitude to directly download and install it. You can even include a file in /etc/apt/sources.list.d in your .deb, so that once users install it the first time, the next package upgrade will automatically pull any new versions from dlang.org. As an example, this is what Opera does. T -- Never step over a puddle, always step around it. Chances are that whatever made it is still dripping.
Sep 27 2012
prev sibling next sibling parent "David Nadlinger" <see klickverbot.at> writes:
On Thursday, 27 September 2012 at 00:51:29 UTC, Brad Roberts
wrote:
 I have on my personal todo list a few major items (among many 
 others):

 1) add support for multiple projects (dmd2 being the only one 
 currently)
 2) add packaging of built artifacts for master builds
 3) add uploading of packaged builds to github
 4) on-demand builds of specific tags -- intended for release 
 builds

At this point, wouldn't it be easier to use an existing solution like Jenkins, and maybe add a few custom hooks where needed? David
Sep 27 2012
prev sibling next sibling parent Sean Kelly <sean invisibleduck.org> writes:
On Sep 27, 2012, at 12:20 AM, Brad Roberts <braddr puremagic.com> wrote:

 On 9/27/2012 12:02 AM, Iain Buclaw wrote:
 On 27 September 2012 03:14, Brad Roberts <braddr puremagic.com> =


=20
 #4 there implies it's a source package, though I could be =



 you.  Is there a path for externally built binary packages?  That's =



 counter to the general distribution philosophy for most of them, so =



 giong to guess no.
=20

For #4, yes. Ubuntu is a better platform to approach for externally built binary-only packages. But for debian, you could possibly do something similar to how eg: the flash-plugin installer package works - downloads the tar.gz/zip from an external site, extract and install / configure in system.

On reflection, #4 is not going to work for dmd.. neither ubuntu nor =

 with the license situation.  Nor are they happy with binary only =

 for use on the dlang.org site (hosted via github's downloads api).  =

 bundling and pushing to distributions.

I think you're probably right, but it's worth noting that the Ubuntu = install asks whether to install a set of proprietary software at some = point. So the thought of a DMD package available to Ubuntu users = somehow seems entirely reasonable.=
Sep 27 2012
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Thu, 2012-09-27 at 07:50 -0700, H. S. Teoh wrote:
[=E2=80=A6]
 Yeah that's the other way to do it: build your own .deb's, and create an
 apt repository on dlang.org (or somewhere), then publish the repository
 URL. Then users can simply add the URL to /etc/apt/sources.list, and
 they will be able to use apt-get/aptitude to directly download and
 install it. You can even include a file in /etc/apt/sources.list.d in
 your .deb, so that once users install it the first time, the next
 package upgrade will automatically pull any new versions from dlang.org.
=20
 As an example, this is what Opera does.

Use of /etc/apt/sources.list.d turns out to be anathema to those of use who use approx. Having a D apt repository remains a good move. In fact isn't there one already? It's contents could be widened to include all deb from D stuff. (Except I haven't actually been able to make it work :-( --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Sep 27 2012
prev sibling next sibling parent Russel Winder <russel winder.org.uk> writes:
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

On Wed, 2012-09-26 at 17:46 +0200, David Nadlinger wrote:
[=E2=80=A6]
 Joseph, Russel, you seem to be both personally interested in=20
 D/LDC and quite knowledgeable about Debian-style packaging. Might=20
 I suggest that you think about joining the LDC forces as a=20
 package maintainer? It certainly isn't a huge amount of work to=20
 do, but many small items also add up=E2=80=A6

It is certainly a considerable proposition. However I think getting an active Debian Maintainer to take the materials onto his/her list of responsibilities would, in my view, be a far more productive approach. There are git-based tools for managing Debian packaging builds which fit well with D being a Git oriented community.=20 --=20 Russel. =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D Dr Russel Winder t: +44 20 7585 2200 voip: sip:russel.winder ekiga.n= et 41 Buckmaster Road m: +44 7770 465 077 xmpp: russel winder.org.uk London SW11 1EN, UK w: www.russel.org.uk skype: russel_winder
Sep 27 2012
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 28/09/12 00:31, Russel Winder wrote:
 Having a D apt repository remains a good move. In fact isn't there one
 already? It's contents could be widened to include all deb from D stuff.

There certainly used to be, but IIRC it has fallen into disuse. But it's still better to have packages in the official repos, because that way people will be able to access them immediately without having to look for 3rd-party repos.
Sep 27 2012
prev sibling next sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 09/27/2012 12:02 PM, Joseph Rushton Wakeling wrote:
 I'd love to, but it would be irresponsible to commit to it as (right now
 especially) I don't have a very good idea of what time I'll be able to offer.

Just to follow up here -- a couple of days ago I pulled LDC from GitHub and built it. First time I've tried LDC in a while as up until fairly recently I was not aware of the work on GitHub. Very nice and friendly build process -- I like the inclusion of druntime and phobos as submodules. The executables produced are nice and fast -- maybe about 10-15% slower than GDC for the number-crunching code I tested, but much faster than dmd-compiled programs, and the compilation process itself is super-fast. I'll try and follow up in about 6 weeks' time by which time I should be settled in new job. If it's all all right time-wise, and if someone can mentor me in production of good-quality deb files, I'd be willing to reconsider the maintainer issue. :-)
Oct 02 2012
prev sibling next sibling parent "David Nadlinger" <see klickverbot.at> writes:
On Tuesday, 2 October 2012 at 13:46:58 UTC, Joseph Rushton 
Wakeling wrote:
 The executables produced are nice and fast -- maybe about 
 10-15% slower than GDC for the number-crunching code I tested, 
 […]

Is any of the code public, in the sense that you could give e.g. me access for benchmarking purposes? We are currently using a presumably suboptimal optimization pass schedule, which for example doesn't include the auto vectorizer, but are going to switch to a new built-in pass manager soon (which uses the same pass schedule as Clang), and it would be very interesting to see its impact on performance-critical code. David
Oct 02 2012
prev sibling parent Joseph Rushton Wakeling <joseph.wakeling webdrake.net> writes:
On 10/02/2012 06:14 PM, David Nadlinger wrote:
 Is any of the code public, in the sense that you could give e.g. me access for
 benchmarking purposes? We are currently using a presumably suboptimal
 optimization pass schedule, which for example doesn't include the auto
 vectorizer, but are going to switch to a new built-in pass manager soon (which
 uses the same pass schedule as Clang), and it would be very interesting to see
 its impact on performance-critical code.

Here you go. :-) https://github.com/WebDrake/Dregs It's surely not the best D code ever written (it possibly inherits too much from C++ in design terms), but hopefully it's still useful for your purposes.
Oct 02 2012