You are not logged in.
Pages: 1
Topic closed
I was a bit inspired by this thread, so I wanted to see if it was possible to compile pacman on a windows system. I did use cygwin so I guess I was cheating a bit...
Anyway, it was possible with the exception for libdownload, I haven't looked into how to make that compile or libfetch for that matter.
The real reason why I am even considering to create a working pacman on windows is because I need windows at my current work and the update functionality for cygwin just sucks.
I am a bit tired now, otherwise I would have tried to describe all the steps I did, will do that later (tomorrow or during the weekend).
Offline
For a sec, i just thought you changed your prompt and echo a few things and ran: pacman --version. Then c/p into a screenshot of a cmd prompt. Other than that, sick!
Last edited by haxit (2009-02-27 00:08:30)
Archi686 User | Old Screenshots | Old .Configs
Vi veri universum vivus vici.
Offline
Actually I find it handy to have pacman running on cygwin, it allows me to still do some pacman development when I am stuck on windows
But well, I never wanted to use it for real though.
About libdownload/libfetch not compiling, you can always use an external downloader with XferCommand
pacman roulette : pacman -S $(pacman -Slq | LANG=C sort -R | head -n $((RANDOM % 10)))
Offline
This is how far my progress have been for creating a arch cygwin environment.
I wrote all these commands from a cygwin shell.
libarchive was pretty easy to install:
tar xzvf libarchive-2.6.0.tar.gz
cd libarchive-2.6.0
./configure --prefix=/usr
make
make install
I had to disable the documentation since I couldn't get the dependency for that to actually work. I also disabled the libdownload dependency since it couldn't compile.
tar xzvf pacman-3.2.2.tar.gz
cd pacman-3.2.2
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --disable-doc --disable-internal-download
make -I/usr/lib
make install
The biggest problem seems to be creating packages, I haven't figured out a way to build fakeroot on windows and by reading some mailinglist it seems like it isn't possible due to how cygwin handles users and groups, In short, cygwin doesn't allow to use user-ids for users that doesn't yet exist. I haven't created a root user yet so I don't know if it is possible to run makepkg without fakeroot.
Maybe it could be possible to use a chroot jail instead to keep track of all the files in a package.
I don't think all these are required but these are the packages I had installed in cygwin:
Cygwin Package Information
Package Version
_update-info-dir 00807-1
alternatives 1.3.30c-2
asciidoc 8.3.5-1
ash 20040127-4
audiofile 0.2.6-3
autoconf 6-1
autoconf2.1 2.13-5
autoconf2.5 2.63-1
automake 3-1
automake1.10 1.10.1-2
automake1.4 1.4p6-5
automake1.5 1.5-3
automake1.6 1.6.3-5
automake1.7 1.7.9-4
automake1.8 1.8.5-4
automake1.9 1.9.6-3
base-files 3.7-1
base-passwd 2.2-1
bash 3.2.48-21
bash-completion 20060301-2
binutils 20080624-2
bsdiff 4.3-4
bzip2 1.0.5-2
cdda2wav 1.1.7.1-1
cdrkit 1.1.7.1-1
chewmail 1.2-1
coreutils 6.10-2
cpio 2.9-1
cron 4.1-7
crypt 1.1-1
csih 0.1.8-1
cvsps 2.1-1
cygrunsrv 1.34-1
cygutils 1.3.2-1
cygwin 1.5.25-15
cygwin-doc 1.4-4
diffutils 2.8.7-1
e2fsprogs 1.35-3
editrights 1.01-2
esound 0.2.41-1
expat 2.0.1-1
file 4.21-1
findutils 4.4.0-3
flac 1.2.1-1
flac-devel 1.2.1-1
font-bitstream-vera-ttf 1.10-1
fontconfig 2.6.0-1
gawk 3.1.6-1
gcc 3.4.4-3
gcc-core 3.4.4-3
gcc-g++ 3.4.4-3
gcc-java 3.4.4-3
gcc-mingw-core 20050522-1
gcc-mingw-g++ 20050522-1
gcc-mingw-java 20050522-1
gdb 6.8-2
gettext 0.17-3
git 1.6.1.2-1
grep 2.5.3-1
groff 1.19.2-2
gzip 1.3.12-2
icedax 1.1.7.1-1
indent 2.2.9-2
inetutils 1.5-4
inputproto 1.4.4-1
kbproto 1.0.3-1
less 382-1
libao 0.8.8-1
libao-devel 0.8.8-1
libao2 0.8.8-1
libarchive2 2.5.5-1
libaudio-devel 1.9.1-2
libaudio2 1.9.1-2
libaudiofile-devel 0.2.6-3
libaudiofile0 0.2.6-3
libbz2_1 1.0.5-2
libcurl4 7.16.3-1
libdb4.2 4.2.52.5-2
libdb4.5 4.5.20.2-2
libesd-devel 0.2.41-1
libesd0 0.2.41-1
libesound0 0.2.41-1
libexpat1 2.0.1-1
libexpat1-devel 2.0.1-1
libFLAC++6 1.2.1-1
libFLAC8 1.2.1-1
libfontconfig1 2.6.0-1
libfontenc1 1.0.4-2
libfreetype26 2.3.8-1
libfreetype6 2.3.8-1
libgcrypt11 1.4.1-4
libgdbm4 1.8.3-8
libgpg-error 1.6-1
libICE-devel 1.0.4-2
libICE6 1.0.4-2
libiconv2 1.12-1
libintl2 0.12.1-3
libintl3 0.14.5-1
libintl8 0.17-3
libltdl7 2.2.7a-1
liblzmadec0 4.32.7-2
libncurses7 5.3-4
libncurses8 5.7-1
libogg 1.1.3-1
libogg-devel 1.1.3-1
libogg0 1.1.3-1
libpcre0 7.8-1
libpopt0 1.6.4-4
libpthread-stubs 0.1-1
libreadline6 5.2.13-11
libSM-devel 1.1.0-1
libSM6 1.1.0-1
libspeex1 1.2rc1-1
libssh2_1 0.15-1
libtool 2.2.7a-1
libvorbis 1.2.0-2
libvorbis-devel 1.2.0-2
libvorbis0 1.2.0-2
libvorbisenc2 1.2.0-2
libvorbisfile3 1.2.0-2
libwrap0 7.6-4
libX11-devel 1.1.5-2
libX11_6 1.1.5-2
libXau-devel 1.0.4-1
libXau6 1.0.4-1
libXaw7 1.0.5-1
libxcb-devel 1.1-3
libxcb-xlib-devel 1.1-3
libxcb-xlib0 1.1-3
libxcb1 1.1-3
libXdmcp-devel 1.0.2-3
libXdmcp6 1.0.2-3
libXext6 1.0.4-1
libxml2 2.7.3-1
libXmu6 1.0.4-1
libXpm4 3.5.7-2
libxslt 1.1.24-2
libXt-devel 1.0.5-2
libXt6 1.0.5-2
login 1.9-8
lzma 4.32.7-2
m4 1.4.10b-2
make 3.81-2
makedepend 1.0.1-1
man 1.6e-1
mingw-runtime 3.15.2-1
minires 1.02-1
mkfontdir 1.0.4-1
mkfontscale 1.0.5-1
mktemp 1.999-9
nano 2.0.9-1
nas 1.9.1-2
ncurses 5.7-1
ogmtools 1.5-1
openssh 5.1p1-10
openssl 0.9.8j-1
patch 2.5.8-9
patchutils 0.3.0-1
pcre 7.8-1
perl 5.10.0-5
perl-Error 0.17014-1
ping 1.0-1
python 2.5.2-1
rcs 5.7-4
rebase 2.4.4-1
run 1.1.10-1
rxvt 20050409-9
screen 4.0.3-1
sed 4.1.5-2
speex 1.2rc1-1
speex-devel 1.2rc1-1
tar 1.21-1
tcltk 20080420-1
termcap 20050421-1
terminfo 5.7_20090221-1
texinfo 4.8a-1
tzcode 2008h-1
util-linux 2.14.1-1
vorbis-tools 1.2.0-2
w32api 3.13-1
wget 1.11.4-3
which 2.20-1
xproto 7.0.14-1
zlib 1.2.3-2
Offline
I have actually managed to create some packages with makepkg (ed and bzip2) on windows.
The only thing I had to do was to remove the fakeroot part from the makepkg script and the check to see if I am root. I know that this is a bit ugly and it's even uglier when all packages are owned by myself. This should be solved by either building the packages as administrator or creating a specific user for cygwin which then is responsible for building the packages. I haven't decided on that yet so it will be a bit of trial and error for a while.
By the way, I think it's interesting that there have been a project which was trying to build a debian-win32 environment (with cygwin). The project is from at least 2001 and it is currently dead, they didn't succeed. This will definitely make it much more fun if I am able to build an arch-win32 environment but at least I know that it is really hard since others have fail before me.
Last edited by PJ (2009-03-02 12:08:34)
Offline
Fakeroot is completely unnecessary on a windows plattform, it really doesn't matter who was the owner of the files in a package when it was created, the files will be owned by the one who installs the package, not the one who created it. I saw this when I created a package with one user and installed it with another user.
Makes it more understandable why cygwin uses 770 on all the installed files, it makes it a lot easier to remove files as a different user.
There is no working su in cygwin even though an executable exist : http://www.cygwin.com/faq/faq-nochunks. … q.using.su
RunAs doesn't seem to work from inside cygwin but it is still possible to run cygwin as another user but that has to be started from a windows command prompt: runas /USER:username c:\cygwin\cygwin.bat
Using another user to handle packages makes it more complex since windows doesn't make it easy to change user on the fly. I think it is actually better to use the same solution that cygwin uses. It's more KISS and it is definitely more according to how it is done upstream.
Offline
I have created pacman, libarchive and a couple of others with makepkg. I had to do some changes to the makepkg.conf, now it uses cygwin as carch and i686-pc-cygwin as chost. Besides less problem when building, now the PKGBUILD also requires cygwin as an arch. I am still looking at the file permission problem. I think it might be real nice if makepkg could go through all the files and change the file permission to better suite the windows environment before the compression phase just to make it easy to reuse the current PKGBUILD. But this is just an idea.
The makepkg that I am using contains some ugly hacks but it can be downloaded from here
Last edited by PJ (2009-03-05 00:11:42)
Offline
I haven't done that much progress lately, but this is mostly since there doesn't seemed to be good documentation on how to bootstrap cygwin. I have failed a couple of times to compile cygwin and I have recompiled gcc a couple of times, one of the times I forgot to add g++. I really start to understand why there isn't many cygwin distributions...
Besides reading LFS, I am also following this guide (I am half-way through it).
Anyway, I still think this is possible so I am going to continue trying to bootstrap an arch-cygwin environment.
I wish I had a faster computer since I am constantly running a gcc screensaver. Reminds me why I went from an source based distribution (Crux) to a binary.
Offline
I have managed a mingw from scratch before, although I hear the next (maybe current?) release does things a bit differently. Not sure if pacman builds there and everything does not build under mingw (being a more minimal implementation of cygwin) so just a useless bit of info for you...
Offline
I have managed a mingw from scratch before, although I hear the next (maybe current?) release does things a bit differently. Not sure if pacman builds there and everything does not build under mingw (being a more minimal implementation of cygwin) so just a useless bit of info for you...
I might look into it. It's not that important that it is cygwin, it was more chosen because I have used it before and that I thought that it would be easier to compile programs with. Anyway, thanks for the suggestion.
Offline
If you look into mingw, this might be of some use to you: http://allan.mcrae.googlepages.com/misc_mingw.html
Offline
This is my first attempt to compile pacman with mingw. Seems like there is something that doesn't compile on windows when I am using mingw. So if I am going to use mingw then I need to look into how to make pacman work under mingw. If I do that, I have to either find the missing dependency or change part of the source code and to me this looks like I have to change the source code. Anyway, I haven't looked into it to much and I really don't have time for it right now since I am going to work now.
These are the commands that I used for trying to compile it and I used libarchive for windows.
./configure --disable-doc --disable-internal-download --prefix=/c/mingw
make
The output with the error:
make all-recursive
make[1]: Entering directory `/c/mingw/pkg/pacman-3.2.2'
Making all in lib/libalpm
make[2]: Entering directory `/c/mingw/pkg/pacman-3.2.2/lib/libalpm'
Making all in po
make[3]: Entering directory `/c/mingw/pkg/pacman-3.2.2/lib/libalpm/po'
make[3]: Nothing to be done for `all'.
make[3]: Leaving directory `/c/mingw/pkg/pacman-3.2.2/lib/libalpm/po'
make[3]: Entering directory `/c/mingw/pkg/pacman-3.2.2/lib/libalpm'
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT add.lo -MD -MP -MF .deps/add.Tpo -c -o add.lo add.c
mkdir .libs
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT add.lo -MD -MP -MF .deps/add.Tpo -c add.c -DDLL_EXPORT -DPIC -o .libs/add.o
add.c: In function `commit_single_pkg':
add.c:762: warning: ISO C does not support the `I64' printf length modifier
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT add.lo -MD -MP -MF .deps/add.Tpo -c add.c -o add.o >/dev/null 2>&1
mv -f .deps/add.Tpo .deps/add.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT alpm.lo -MD -MP -MF .deps/alpm.Tpo -c -o alpm.lo alpm.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT alpm.lo -MD -MP -MF .deps/alpm.Tpo -c alpm.c -DDLL_EXPORT -DPIC -o .libs/alpm.o
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT alpm.lo -MD -MP -MF .deps/alpm.Tpo -c alpm.c -o alpm.o >/dev/null 2>&1
mv -f .deps/alpm.Tpo .deps/alpm.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT alpm_list.lo -MD -MP -MF .deps/alpm_list.Tpo -c -o alpm_list.lo alpm_list.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT alpm_list.lo -MD -MP -MF .deps/alpm_list.Tpo -c alpm_list.c -DDLL_EXPORT -DPIC -o .libs/alpm_list.o
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT alpm_list.lo -MD -MP -MF .deps/alpm_list.Tpo -c alpm_list.c -o alpm_list.o >/dev/null 2>&1
mv -f .deps/alpm_list.Tpo .deps/alpm_list.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT backup.lo -MD -MP -MF .deps/backup.Tpo -c -o backup.lo backup.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT backup.lo -MD -MP -MF .deps/backup.Tpo -c backup.c -DDLL_EXPORT -DPIC -o .libs/backup.o
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT backup.lo -MD -MP -MF .deps/backup.Tpo -c backup.c -o backup.o >/dev/null 2>&1
mv -f .deps/backup.Tpo .deps/backup.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT be_files.lo -MD -MP -MF .deps/be_files.Tpo -c -o be_files.lo be_files.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT be_files.lo -MD -MP -MF .deps/be_files.Tpo -c be_files.c -DDLL_EXPORT -DPIC -o .libs/be_files.o
be_files.c: In function `_alpm_db_read':
be_files.c:472: warning: implicit declaration of function `strptime'
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT be_files.lo -MD -MP -MF .deps/be_files.Tpo -c be_files.c -o be_files.o >/dev/null 2>&1
mv -f .deps/be_files.Tpo .deps/be_files.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT be_package.lo -MD -MP -MF .deps/be_package.Tpo -c -o be_package.lo be_package.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT be_package.lo -MD -MP -MF .deps/be_package.Tpo -c be_package.c -DDLL_EXPORT -DPIC -o .libs/be_package.o
be_package.c: In function `parse_descfile':
be_package.c:88: warning: implicit declaration of function `strptime'
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT be_package.lo -MD -MP -MF .deps/be_package.Tpo -c be_package.c -o be_package.o >/dev/null 2>&1
mv -f .deps/be_package.Tpo .deps/be_package.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT cache.lo -MD -MP -MF .deps/cache.Tpo -c -o cache.lo cache.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT cache.lo -MD -MP -MF .deps/cache.Tpo -c cache.c -DDLL_EXPORT -DPIC -o .libs/cache.o
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT cache.lo -MD -MP -MF .deps/cache.Tpo -c cache.c -o cache.o >/dev/null 2>&1
mv -f .deps/cache.Tpo .deps/cache.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT conflict.lo -MD -MP -MF .deps/conflict.Tpo -c -o conflict.lo conflict.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT conflict.lo -MD -MP -MF .deps/conflict.Tpo -c conflict.c -DDLL_EXPORT -DPIC -o .libs/conflict.o
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT conflict.lo -MD -MP -MF .deps/conflict.Tpo -c conflict.c -o conflict.o >/dev/null 2>&1
mv -f .deps/conflict.Tpo .deps/conflict.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT db.lo -MD -MP -MF .deps/db.Tpo -c -o db.lo db.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT db.lo -MD -MP -MF .deps/db.Tpo -c db.c -DDLL_EXPORT -DPIC -o .libs/db.o
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT db.lo -MD -MP -MF .deps/db.Tpo -c db.c -o db.o >/dev/null 2>&1
mv -f .deps/db.Tpo .deps/db.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT delta.lo -MD -MP -MF .deps/delta.Tpo -c -o delta.lo delta.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT delta.lo -MD -MP -MF .deps/delta.Tpo -c delta.c -DDLL_EXPORT -DPIC -o .libs/delta.o
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT delta.lo -MD -MP -MF .deps/delta.Tpo -c delta.c -o delta.o >/dev/null 2>&1
mv -f .deps/delta.Tpo .deps/delta.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT deps.lo -MD -MP -MF .deps/deps.Tpo -c -o deps.lo deps.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT deps.lo -MD -MP -MF .deps/deps.Tpo -c deps.c -DDLL_EXPORT -DPIC -o .libs/deps.o
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT deps.lo -MD -MP -MF .deps/deps.Tpo -c deps.c -o deps.o >/dev/null 2>&1
mv -f .deps/deps.Tpo .deps/deps.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT dload.lo -MD -MP -MF .deps/dload.Tpo -c -o dload.lo dload.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT dload.lo -MD -MP -MF .deps/dload.Tpo -c dload.c -DDLL_EXPORT -DPIC -o .libs/dload.o
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT dload.lo -MD -MP -MF .deps/dload.Tpo -c dload.c -o dload.o >/dev/null 2>&1
mv -f .deps/dload.Tpo .deps/dload.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT error.lo -MD -MP -MF .deps/error.Tpo -c -o error.lo error.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT error.lo -MD -MP -MF .deps/error.Tpo -c error.c -DDLL_EXPORT -DPIC -o .libs/error.o
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT error.lo -MD -MP -MF .deps/error.Tpo -c error.c -o error.o >/dev/null 2>&1
mv -f .deps/error.Tpo .deps/error.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT group.lo -MD -MP -MF .deps/group.Tpo -c -o group.lo group.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT group.lo -MD -MP -MF .deps/group.Tpo -c group.c -DDLL_EXPORT -DPIC -o .libs/group.o
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT group.lo -MD -MP -MF .deps/group.Tpo -c group.c -o group.o >/dev/null 2>&1
mv -f .deps/group.Tpo .deps/group.Plo
/bin/sh ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT handle.lo -MD -MP -MF .deps/handle.Tpo -c -o handle.lo handle.c
gcc -std=gnu99 -DLOCALEDIR=\"/c/mingw/share/locale\" -DHAVE_CONFIG_H -I. -I../.. -pedantic -D_GNU_SOURCE -g -O2 -Wall -MT handle.lo -MD -MP -MF .deps/handle.Tpo -c handle.c -DDLL_EXPORT -DPIC -o .libs/handle.o
handle.c:28:20: syslog.h: No such file or directory
handle.c: In function `_alpm_handle_free':
handle.c:80: warning: implicit declaration of function `closelog'
handle.c: In function `alpm_option_set_root':
handle.c:307: warning: implicit declaration of function `realpath'
make[3]: *** [handle.lo] Error 1
make[3]: Leaving directory `/c/mingw/pkg/pacman-3.2.2/lib/libalpm'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/c/mingw/pkg/pacman-3.2.2/lib/libalpm'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/c/mingw/pkg/pacman-3.2.2'
make: *** [all] Error 2
Last edited by PJ (2009-03-17 08:07:35)
Offline
My guess is that you need to enter the msys environment to get access to glibc (or some other libc headers). Make sure you have the msysdvlpr package installed and then I think you type something like "msysdvlpr" to get to the MSys environment. That allows you to link against the msys dll, much like you link against the cygwin dll in cygwin.
After all this, it might be better to just stick with cygwin and figure out how to bootstrap that... I think it has a greater compatibility with software.
Offline
This is sort of an update of the status of my attempt to create an arch cygwin environment.
So far I have managed to compile the basic libraries for cygwin (being the first thing after a fresh installation of cygwin) so I am actually running a 1.7 version of cygwin1.dll. After doing that I realized that it is not possible to do a real bootstrap with cygwin. I think it's more or less how cygwin is written, the root directory seems to always be one level below where the cygwin1.dll. So, for now I am going for an update from a standard cygwin to an updated version that uses pacman and so far it seems to work. The only problem I have is that I haven't managed to create a mingw32 cross-compiler which is required for compiling cygwin, that's actually the reason why I am compiling cygwin first because the default compilers actually managed to compile it without any problems.
Last edited by PJ (2009-03-26 21:36:52)
Offline
I am taking a break for 10 days so don't expect to see any progress on this, I am going to spend some time outdoors with a snowmobile.
I am still working on it although it was a lot harder than I expected. The reason that I am posting in this thread is that I wanted to mention a nice front end for cygwins package manager which I have started to use since I have reinstalled parts of cygwin from time to time, anyway the program is called cygWine and it is a lot easier to use than setup.exe (but pacman is still better...)
Offline
Just posting to give some kind of indication that I am still working on this.
The upgrade method seems to work so far, there are still packages that needs to be created to make a complete arch-cygwin environment, like for example binutils for mingw, gcc for mingw, cygwin (the dll), win32api, just to name a few. I have managed to compile those when I created the tool-chain during the bootstrap, I haven't created the packages yet. Anyway, I have tried to reinstalled my packages to a new cygwin installation with pretty much just the things that I didn't have as pacman packages and it seems to work.
It shouldn't be to much trouble to replace the rest as long as they compile...
The packages that I have managed to create so far:
$ pacman -Q
autoconf 2.63-1
bash 3.2.048-3
bin86 0.16.17-3
binutils 2.19.1-1
bison 2.4.1-1
bzip2 1.0.5-3
coreutils 7.1-2
dash 0.5.4-4
db 4.7.25-2
dialog 1.1_20080819-1
diffutils 2.8.1-6
ed 1.2-1
eventlog 0.2.9-1
expat 2.0.1-2
file 5.00-1
findutils 4.4.0-1
flex 2.5.35-1
gawk 3.1.6-2
gcc 4.3.3-1
gcc-libs 4.3.3-1
gdbm 1.8.3-5
gettext 0.17-2
gmp 4.2.4-1.1
grep 2.5.4-1
groff 1.20.1-2
gzip 1.3.12-4
less 418-1
libarchive 2.6.1-1
libelf 0.8.10-3
libgpg-error 1.6-1
libtool 2.2.6a-1
m4 1.4.12-1
make 3.81-3
man-db 2.5.4-2
mpfr 2.4.1-2
nano 2.0.9-1
ncurses 5.7-2
pacman 3.2.2-1
pacman-mirrorlist 20090108-1
patch 2.5.9-2
popt 1.14-1
readline 5.2-2
sed 4.1.5-3
tar 1.22-1
texinfo 4.13a-3
which 2.20-1
zlib 1.2.3.3-3
Last edited by PJ (2009-05-07 22:33:03)
Offline
Have you done anything else with pacman and cygwin?? I mean, have you continued this work?
Renan
Last edited by renanbs (2012-12-04 18:02:23)
Offline
renanbs, this thread is really old. No guarantee that PJ will even notice. Better ask him directly.
I'll keep the thread open for now in case PJ answers, however.
To know or not to know ...
... the questions remain forever.
Offline
Probably better asking him directly.
But if it is interest of someone, I've managed to compile pacman 4.03 with cygwin with this line:
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var CFLAGS="-g -O0 -std=gnu99" --with-libcurl --disable-nls --disable-doc
I will do some more tests.
Renan
Offline
Well, based on falconindy's comment it is about time to close this thread.
To know or not to know ...
... the questions remain forever.
Offline
Pages: 1
Topic closed