You are not logged in.

#1 2009-02-26 23:57:17

PJ
Member
From: Sweden
Registered: 2005-10-11
Posts: 602

Pacman on Windows

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... tongue
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.

pacmanoncygwin.th.png

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

#2 2009-02-27 00:08:20

haxit
Member
From: /home/haxit
Registered: 2008-03-04
Posts: 1,247
Website

Re: Pacman on Windows

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

#3 2009-02-27 19:07:39

shining
Pacman Developer
Registered: 2006-05-10
Posts: 2,043

Re: Pacman on Windows

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 smile
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

#4 2009-03-01 21:14:49

PJ
Member
From: Sweden
Registered: 2005-10-11
Posts: 602

Re: Pacman on Windows

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

#5 2009-03-02 11:53:12

PJ
Member
From: Sweden
Registered: 2005-10-11
Posts: 602

Re: Pacman on Windows

I have actually managed to create some packages with makepkg (ed and bzip2) on windows. smile

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

#6 2009-03-03 05:07:08

PJ
Member
From: Sweden
Registered: 2005-10-11
Posts: 602

Re: Pacman on Windows

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

#7 2009-03-05 00:11:20

PJ
Member
From: Sweden
Registered: 2005-10-11
Posts: 602

Re: Pacman on Windows

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

#8 2009-03-16 22:30:15

PJ
Member
From: Sweden
Registered: 2005-10-11
Posts: 602

Re: Pacman on Windows

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. tongue

Offline

#9 2009-03-16 22:38:07

Allan
Pacman
From: Brisbane, AU
Registered: 2007-06-09
Posts: 11,365
Website

Re: Pacman on Windows

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

#10 2009-03-16 23:09:52

PJ
Member
From: Sweden
Registered: 2005-10-11
Posts: 602

Re: Pacman on Windows

Allan wrote:

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

#11 2009-03-16 23:17:26

Allan
Pacman
From: Brisbane, AU
Registered: 2007-06-09
Posts: 11,365
Website

Re: Pacman on Windows

If you look into mingw, this might be of some use to you: http://allan.mcrae.googlepages.com/misc_mingw.html

Offline

#12 2009-03-17 08:06:59

PJ
Member
From: Sweden
Registered: 2005-10-11
Posts: 602

Re: Pacman on Windows

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

#13 2009-03-17 09:16:14

Allan
Pacman
From: Brisbane, AU
Registered: 2007-06-09
Posts: 11,365
Website

Re: Pacman on Windows

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

#14 2009-03-26 21:36:29

PJ
Member
From: Sweden
Registered: 2005-10-11
Posts: 602

Re: Pacman on Windows

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

#15 2009-04-03 12:10:49

PJ
Member
From: Sweden
Registered: 2005-10-11
Posts: 602

Re: Pacman on Windows

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

#16 2009-05-07 22:27:47

PJ
Member
From: Sweden
Registered: 2005-10-11
Posts: 602

Re: Pacman on Windows

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. smile

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

#17 2012-12-04 17:52:40

renanbs
Member
From: Porto Alegre
Registered: 2012-10-21
Posts: 11

Re: Pacman on Windows

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

#18 2012-12-04 19:28:39

bernarcher
Forum Fellow
From: Germany
Registered: 2009-02-17
Posts: 2,281

Re: Pacman on Windows

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

#19 2012-12-04 19:45:54

renanbs
Member
From: Porto Alegre
Registered: 2012-10-21
Posts: 11

Re: Pacman on Windows

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

#20 2012-12-05 00:32:37

falconindy
Developer
From: New York, USA
Registered: 2009-10-22
Posts: 4,111
Website

Re: Pacman on Windows

Dead threads need to stay dead. In line with that, pacman on cygwin will be dead with pacman 4.1

Offline

#21 2012-12-05 04:02:41

bernarcher
Forum Fellow
From: Germany
Registered: 2009-02-17
Posts: 2,281

Re: Pacman on Windows

Well, based on falconindy's comment it is about time to close this thread. smile


To know or not to know ...
... the questions remain forever.

Offline

Board footer

Powered by FluxBB