From: Adrien N. <ad...@no...> - 2013-12-13 09:06:19
|
Hi, On Fri, Dec 13, 2013, wyn...@gm... wrote: > > Sorry I did not provide details: > > Building environment: Microsoft XP SP3 (Japanese Home Edition) > > Fetech http://win-builds.org/stable/win-builds-bundle-1.3-beta3.zip > Into local download dir: ..some_path/win-builds > > Started cmd.exe > Changed directory the ..some_path/win-builds > > #did > set YYPREFIX=C:/win-builds-32 > yypkg -init > yypkg -config -setpreds host="i686-w64-mingw32" > yypkg -config -setpreds target="i686-w64-mingw32" > sherpa -set-mirror http://win-builds.org/1.3-beta3/packages/windows_32 > sherpa -install all > > ################################# the below is what I earlier sent > cat fa wrote: > > When I did sherpa -install all, nothong was downloaded. > > When I ran: > $ sherpa -install all > > It installed nearly everthing I think. Hoever, it aborted with the followi= > ng error message. > -------- #1 > Installing gtk+2-2.24.20-1-i686-w64-mingw32.txz...mklink > ... external command ( original was in Japanese char set so I added english ) > ... not recognized as an executable or batch file. > Fatal error: exception Failure(""mklink /J \"doc/gtk+-2.24.20/gail-libgail-util\ > " \"doc\\gtk+-2.24.20/../../share/gtk-doc/html/gail-libgail-util\"" returned 1 > .") > -------- > > Also there were numerous messages related to "skipping" symbolic links whic= > h I don't > know if these are important or not. There presence did not halt the insta= > ll process. > --------#2=20=20 > Installing fontconfig-2.10.93-1-i686-w64-mingw32.txz...Skipping symlink "etc/fon > ts/conf.d/10-scale-bitmap-fonts.conf" -> "../../../../../../../opt/windows_32/et > c/fonts/conf.avail/10-scale-bitmap-fonts.conf": ENOENT > Skipping symlink "share/fontconfig/conf.avail" -> "../../../../../../opt/windows > _32/etc/fonts/conf.avail": ENOENT > DONE > -------- There are two issues here: - symlink fallback on windows - Windows XP and symlink fallback tl;dr: don't mind the warnings, they're harmless; Windows XP support is an issue (but at least read the last paragraph) Full explanation below. Since the package is a *native* windows executable, it cannot do POSIX symlinks. Win32 symlinks are slightly different and also have several issues which make them not usable. The approach to provide something equivalent to how symlinks are used inside packages is: - build on linux - before building the package, build a list of symlinks and store the filetype of the target: directory, regular file or unknown (unhandled) - build the package with the symlinks excluded - when installing, extract the files from the package - if on windows, emulate symlinks with: - hardlinks for links to regular files - directory junctions for links to directories - skip and print a message for unknown ones The "Skipping symlink" line is because of that last case. The additional ENOENT means that the type of the target is unknown because the symlink was broken when creating the package (it might be not-broken when actually installed but it's not something that is handled yet). I've checked again all of the "unhandled" symlinks and I see none that break functionality. The breakdown is roughly: - gfortran-related symlinks which shouldn't exist reported as http://win-builds.org/bugs/index.php?do=details&task_id=15 - symlinks inside "share/doc" - the fontconfig ones you've seen above; I'm not sure they matter but I'll check - a symlink from /lib/cpp to /usr/bin/cpp which probably only matters to linux distributions Currently, symlinks to directories are handled through a tool named "mklink.exe". It is a command-line tool to create hardlinks, symlinks and directory junctions but it is not on Windows XP. The quick-and-easy solution is to copy that file from another machine but it's not something I can redistribute myself. The other solution is that yypkg stops using mklink.exe. This wasn't done before because writing some C (yypkg isn't written in C) is required in order to access some very win32-specific APIs to both create and delete directory junctions. It's not very difficult; it's simply something that hasn't been done yet. This is actually also required because calling unlink() on directory junctions fails with EPERM (cmd.exe's del and msys1's rm happen to also fail removing directory junctions; explorer does it fine). The corresponding item in the bug tracker is: http://win-builds.org/bugs/index.php?do=details&task_id=13&project=2 (NB: version "1.7" and "1.8" are yypkg versions, not win-builds one) With that said, I don't know how much attention should be given to Windows XP nowadays. It's going to not be updated by MS anymore in 4 months and I wasn't really expecting someone on this mailing-list to still use Windows XP on a daily basis to be honest. I'm going to fix the aforementionned issue. However I don't know how much attention should be given to this OS and that's because I don't know how many people are still using it _and_ also using newly-built software on it. If you use XP or if you have people using your software and still using XP, please let me know. -- Adrien Nader |