Restructuring the download archive

Johannes Pfau via D.gnu d.gnu at puremagic.com
Fri Jul 10 05:45:50 PDT 2015


I thinks it's time to push some new binary releases to 
gdcproject.org (gcc-5, intrinsics for checkedint, ...). We should 
first get some structure into our download archive though: 
ftp://ftp.gdcproject.org/binaries/

The first question is whether we can break old download links. 
I've hardcoded one or two toolchain URLs in the build scripts, 
but that could be changed easily.


Another question is how exactly the new directory layout should 
look like. I think we definitely need host folders as a top-level 
structure:

/binaries
  |- x86_64-linux-gnu
  |- x86_64-w64-mingw32
  |- arm-linux-gnueabi

Do we want to have the target as a directory? GCC version? 
Frontend version?
I think the frontend version is usually more important for users 
than gcc version. So if we don't use the GCC version we still 
have two options. dmdversion/target or target/dmdversion:

/binaries
  |- x86_64-linux-gnu
  |  |- 2.061
  |  |  |- x86_64-w64-mingw32
  |  |  |  |- 
x86_64-w64-mingw32_2.061.2_gcc4.8.2_AAAA_20140430.tar.xz
  |  |  |  |- 
x86_64-w64-mingw32_2.061.2_gcc4.8.2_BBBB_20140430.tar.xz
  |  |  |- arm-linux-gnueabi
  |  |- 2.062
  |- x86_64-w64-mingw32
  |- arm-linux-gnueabi

Another question: DMD frontend sub-releases in one folder? 
(2.061|2.061.1|2.061.2)

We could also use symlinks for tools to point to the latest 
releases:

/binaries
  |- x86_64-linux-gnu
  |  |- 2.061
  |  |  |- x86_64-w64-mingw32
  |  |  |  |- 
x86_64-w64-mingw32_2.061.2_gcc4.8.2_AAAA_20140430.tar.xz
  |  |  |  |- 
x86_64-w64-mingw32_2.061.2_gcc4.8.2_BBBB_20140430.tar.xz
  |  |  |- arm-linux-gnueabi
  |  |  |- x86_64-w64-mingw32_2.061_LATEST.tar.xz
  |  |- 2.062
  |  |- x86_64-w64-mingw32_LATEST.tar.xz
  |- x86_64-w64-mingw32
  |- arm-linux-gnueabi

And how should we present naive releases? Some folder structure 
and target as usual or we could use some other name for target 
(e.g. native). We could also skip the target directory for native 
builds:

/binaries
  |- x86_64-linux-gnu
  |  |- 2.061
  |  |  |- x86_64-w64-mingw32
  |  |  |  |- 
x86_64-w64-mingw32_2.061.2_gcc4.8.2_AAAA_20140430.tar.xz
  |  |  |  |- 
x86_64-w64-mingw32_2.061.2_gcc4.8.2_BBBB_20140430.tar.xz
  |  |  |- arm-linux-gnueabi
  |  |  |- x86_64-w64-mingw32_2.061_LATEST.tar.xz
  |  |  |- x86_64-linux-gnu_2.061_gcc4.9.2_AAAA_20150405.tar.xz
  |  |  |- x86_64-linux-gnu_2.061_gcc4.9.2_BBBB_20150405.tar.xz
  |  |  |- x86_64-linux-gnu_2.061_gcc4.9.2_CCCC_20150405.tar.xz
  |  |- 2.062
  |  |- x86_64-w64-mingw32_LATEST.tar.xz
  |- x86_64-w64-mingw32
  |- arm-linux-gnueabi

However, this could get confusing as we'll have many files in the 
dmdver folders. We could also move the -LATEST links into the 
target dirs for all builds except for native ones. This way 
native builds will be more prominent:

/binaries
  |- x86_64-linux-gnu
  |  |- 2.061
  |  |  |- x86_64-w64-mingw32
  |  |  |  |- 
x86_64-w64-mingw32_2.061.2_gcc4.8.2_AAAA_20140430.tar.xz
  |  |  |  |- 
x86_64-w64-mingw32_2.061.2_gcc4.8.2_BBBB_20140430.tar.xz
  |  |  |  |- x86_64-w64-mingw32_2.061_LATEST.tar.xz
  |  |  |- arm-linux-gnueabi
  |  |  |- x86_64-linux-gnu
  |  |  |  |- x86_64-linux-gnu_2.061_gcc4.9.2_AAAA_20150405.tar.xz
  |  |  |  |- x86_64-linux-gnu_2.061_gcc4.9.2_BBBB_20150405.tar.xz
  |  |  |  |- x86_64-linux-gnu_2.061_gcc4.9.2_CCCC_20150405.tar.xz
  |  |  |- x86_64-linux-gnu_2.061_LATEST.tar.xz
  |  |- 2.062
  |  |- x86_64-w64-mingw32_LATEST.tar.xz
  |- x86_64-w64-mingw32
  |- arm-linux-gnueabi
  |- x86_64-linux-gnu_LATEST.tar.xz



More information about the D.gnu mailing list