Questions about GSOC 2010

9 views
Skip to first unread message

Gautam BT

unread,
Mar 19, 2010, 1:54:09 PM3/19/10
to min...@googlegroups.com
Hello,

I am interested in working on Minix 3 as part of GSoC 2010. Specifically I am interested in the "Porting a package manager" project described on the ideas page. I have a few questions regarding this project:

1) What would be a good sheep/goat project for this?
2) Does the project also involve moving existing packages to the pkgsrc framework?

Any general suggestions regarding the project/GSoC process are welcome as well :)

--
Thanks,
Gautam

AntoineLeca

unread,
Mar 20, 2010, 7:35:53 AM3/20/10
to minix3
On 19 mar, 18:54, Gautam BT wrote:
> 2) Does the project also involve moving existing packages to the pkgsrc
> framework?

I guess it does not: the very purpose of pkgsrc is to provide a rich
base of up-to-date packages, what would be the point to add to it some
obsolete or semi-obsolete packages (like 2-years-old version of the P*
script languages)?

And for packages which are not in pkgsrc like ACK, I do not believe
there would be much interest in the Minix3 team for the problems
encountered in porting ACK to NetBSD (which I understand is the first
target for a valid pkgsrc packages)?

Only my own advice, though.

Antoine

Erik van der Kouwe

unread,
Mar 20, 2010, 8:15:09 AM3/20/10
to minix3
Hi,

> 2) Does the project also involve moving existing packages to the pkgsrc
> framework?

I'm not sure as I am not involved in this project idea, but I would
think that at the very least there should be sufficient packages in
the new pkgsrc to show that it really works. If possible, it would
probably be best to make a tool that can convert MINIX packages into
pkgsrc packages.

With kind regards,
Erik

Arun Thomas

unread,
Mar 20, 2010, 3:25:17 PM3/20/10
to min...@googlegroups.com
Gautam BT wrote:
> Hello,
>
> I am interested in working on Minix 3 as part of GSoC 2010. Specifically
> I am interested in the "Porting a package manager" project described on
> the ideas page. I have a few questions regarding this project:

Hi,

Glad to hear that you're interested in this project. We are sorely in
need of a better package manager. I will answer your questions in
reverse order. I hope my answers will be helpful to you and other
interested students.

> 2) Does the project also involve moving existing packages to the pkgsrc
> framework?

Not exactly. The accepted student will take the existing pkgsrc
repository and modify its packages to build on MINIX 3. Many of the
packages should only require minor tweaks once the pkgsrc tools have
been ported. For other packages, you might need to modify the package
"recipe" or you might need to tell pkgsrc to apply a MINIX-specific
patch. In some cases, it might be easier to tweak MINIX itself to be
more compatible.

We ultimately want to submit our MINIX-specific pkgsrc changes upstream
to the pkgsrc developers. That way, we can stay up-to-date with all the
work they are doing. The accepted student will not be required to port
the entire pkgsrc repository. We would ideally want a significant subset
of the packages listed here: http://www.minix3.org/software.

One nice thing about this project is that you will not only be
contributing to MINIX 3, but also to pkgsrc. And, because of your work,
MINIX 3 will be added to this table:
http://www.netbsd.org/docs/pkgsrc/introduction.html#intro.platforms.

> 1) What would be a good sheep/goat project for this?

You could begin the process of getting pkgsrc running on MINIX. You
obviously won't finish, but you could make some headway. I believe Tim
Larson on the group has done some work here. I would recommend using a
3.1.7 experimental snapshot for this:
http://www.few.vu.nl/~beng/minix3_1_7_ide_r6438.iso.gz.

If you would like to start off with something easier, you could also
help with the effort to fix broken packages:
http://wiki.minix3.org/en/DocumentationAndPackages. That would help you
familiarize yourself with the MINIX 3 development environment. If you
are able to fix a package, submit your patch to the mailing list.

Below are a few more things you could explore before applying. These are
merely suggestions to help you become more familiar with MINIX and
pkgsrc. They are not required for a successful application, but you will
probably learn some useful things by doing them and you will write a
stronger proposal as a result.

-Install Minix in a virtual machine (VM) and familiarize yourself with
the development environment. I recommend using a virtual machine, since
it's often more convenient than using real hardware. Snapshots in
particular are very helpful.
-Study the pkgsrc manual: http://www.netbsd.org/docs/pkgsrc/
-Install NetBSD in a VM and experiment with pkgsrc.
-Create a pkgsrc package for a simple program. You will become familiar
with pkgsrc from a package developer perspective.
-Modify an existing pkgsrc package to apply a patch that you've written:
http://www.netbsd.org/docs/pkgsrc/components.html#components.patches
-Familiarize yourself with our current packman system. Be sure to read
the wiki pages about packman.
-Take a look at our bigports repository to see what kinds of
Minix-specific changes are required to port programs:
https://gforge.cs.vu.nl/gf/project/minix/scmsvn/?action=browse&path=%2Ftrunk%2Fbigports%2F
(The original sources for a given package are always checked in first,
so you can use 'svn diff' to determine what changes were necessary for
the port.)
-For a package listed on our software page, download the original
sources from the software's website (e.g., download GNU grep 2.5.1a from
gnu.org). Then, apply the MINIX-specific patch. Again, you can use 'svn
diff' on our bigports repository to make this patch. Then, try to build
the package. This (somewhat contrived) exercise will make you more
familiar with the development environment.

Hope that helps. Feel free to ask more questions. Good luck.

Best,
Arun

Gautam BT

unread,
Mar 21, 2010, 1:53:39 PM3/21/10
to min...@googlegroups.com
On Sat, Mar 20, 2010 at 7:25 PM, Arun Thomas <arun....@gmail.com> wrote:
Gautam BT wrote:
Hello,

I am interested in working on Minix 3 as part of GSoC 2010. Specifically I am interested in the "Porting a package manager" project described on the ideas page. I have a few questions regarding this project:

Hi,

Glad to hear that you're interested in this project. We are sorely in need of a better package manager. I will answer your questions in reverse order. I hope my answers will be helpful to you and other interested students.

> 2) Does the project also involve moving existing packages to the pkgsrc
> framework?

Not exactly. The accepted student will take the existing pkgsrc repository and modify its packages to build on MINIX 3. Many of the packages should only require minor tweaks once the pkgsrc tools have been ported. For other packages, you might need to modify the package "recipe" or you might need to tell pkgsrc to apply a MINIX-specific patch. In some cases, it might be easier to tweak MINIX itself to be more compatible.

We ultimately want to submit our MINIX-specific pkgsrc changes upstream to the pkgsrc developers. That way, we can stay up-to-date with all the work they are doing. The accepted student will not be required to port the entire pkgsrc repository. We would ideally want a significant subset of the packages listed here: http://www.minix3.org/software.

One nice thing about this project is that you will not only be contributing to MINIX 3, but also to pkgsrc. And, because of your work, MINIX 3 will be added to this table: http://www.netbsd.org/docs/pkgsrc/introduction.html#intro.platforms.

Yes, and that is one of the big incentives to work on this project :)
 
1) What would be a good sheep/goat project for this?

You could begin the process of getting pkgsrc running on MINIX. You obviously won't finish, but you could make some headway. I believe Tim Larson on the group has done some work here. I would recommend using a 3.1.7 experimental snapshot for this: http://www.few.vu.nl/~beng/minix3_1_7_ide_r6438.iso.gz.

If you would like to start off with something easier, you could also help with the effort to fix broken packages:
http://wiki.minix3.org/en/DocumentationAndPackages. That would help you familiarize yourself with the MINIX 3 development environment. If you are able to fix a package, submit your patch to the mailing list.

Below are a few more things you could explore before applying. These are merely suggestions to help you become more familiar with MINIX and pkgsrc. They are not required for a successful application, but you will probably learn some useful things by doing them and you will write a stronger proposal as a result.

-Install Minix in a virtual machine (VM) and familiarize yourself with the development environment. I recommend using a virtual machine, since it's often more convenient than using real hardware. Snapshots in particular are very helpful.
-Study the pkgsrc manual: http://www.netbsd.org/docs/pkgsrc/
-Install NetBSD in a VM and experiment with pkgsrc.
-Create a pkgsrc package for a simple program. You will become familiar with pkgsrc from a package developer perspective.
-Modify an existing pkgsrc package to apply a patch that you've written: http://www.netbsd.org/docs/pkgsrc/components.html#components.patches
-Familiarize yourself with our current packman system. Be sure to read the wiki pages about packman.
-Take a look at our bigports repository to see what kinds  of Minix-specific changes are required to port programs:
https://gforge.cs.vu.nl/gf/project/minix/scmsvn/?action=browse&path=%2Ftrunk%2Fbigports%2F
(The original sources for a given package are always checked in first, so you can use 'svn diff' to determine what changes were necessary for the port.)
-For a package listed on our software page, download the original sources from the software's website (e.g., download GNU grep 2.5.1a from gnu.org). Then, apply the MINIX-specific patch. Again, you can use 'svn diff' on our bigports repository to make this patch. Then, try to build the package. This (somewhat contrived) exercise will make you more familiar with the development environment.

I already have Minix installed on my system and on a vm. I also have pkgsrc installed on my Linux system and I already have tried my hand at adding a few small packages to the system. While I am not familiar with the current packman system, I do have a few programs in mind I would like to port to Minix. Will update the group about any progress I make on these.

For the sheep/goat project I am thinking of porting BSD make to minix. This is because BSD make seems to be central to pkgsrc and bootstrapping it is the first step in bootstrapping pkgsrc. I am hoping this won't be too difficult considering it has already been ported to several systems.
 
I have one more question: Currently the GNU C compiler is the only compiler that, works on Minix and is also supported by pkgsrc. However, considering that Minix aims to have the default system BSD licensed, will the project require that the basic package management utilities (The ones involved in the bootstrapping stage) be compiled using ack? I am assuming that pkgsrc (if successfully ported) will be a part of the default system since it is the package manager.

Hope that helps. Feel free to ask more questions. Good luck.


Thanks for the reply, it was very helpful.

--
Gautam

Gautam BT

unread,
Mar 21, 2010, 1:54:34 PM3/21/10
to min...@googlegroups.com
Thanks for the replies, will keep them in mind while drafting my application.

--
Gautam

Erik van der Kouwe

unread,
Mar 21, 2010, 3:30:11 PM3/21/10
to min...@googlegroups.com
Hi,

> For the sheep/goat project I am thinking of porting BSD make to minix.
> This is because BSD make seems to be central to pkgsrc and bootstrapping
> it is the first step in bootstrapping pkgsrc. I am hoping this won't be
> too difficult considering it has already been ported to several systems.

It has already been ported to MINIX and has recently replaced MINIX' own
make.

With kind regards,
Erik

Arun Thomas

unread,
Mar 21, 2010, 3:47:37 PM3/21/10
to min...@googlegroups.com
Gautam BT wrote:
>
> I already have Minix installed on my system and on a vm. I also have
> pkgsrc installed on my Linux system and I already have tried my hand at
> adding a few small packages to the system. While I am not familiar with
> the current packman system, I do have a few programs in mind I would
> like to port to Minix. Will update the group about any progress I make
> on these.
>

Great. There are several pages on our wiki about packman. It's pretty
simple. For the purposes of this project, all you really need to know is
that the build.minix script in bigports/package-0.0.1 includes all the
commands required to build the package. Aside from that, you might need
to diff the sources in bigports to see what Minix-specific changes were
required to port the package to Minix.

Also, these pages might prove useful:

http://wiki.minix3.org/en/DevelopersGuide/PortingGuide
http://wiki.minix3.org/en/DevelopersGuide/MakingPackmanPackage

> For the sheep/goat project I am thinking of porting BSD make to minix.
> This is because BSD make seems to be central to pkgsrc and bootstrapping
> it is the first step in bootstrapping pkgsrc. I am hoping this won't be
> too difficult considering it has already been ported to several systems.

Actually, BSD make is now the default make in MINIX if you're running
-CURRENT. That's why I suggest you install a 3.1.7 snapshot (or update
your Minix installation to trunk). If you upgrade your VM from 3.1.6 to
trunk, be sure to follow the process outlined in /usr/src/docs/UPDATING.

You could try porting some of the other pkgsrc bootstrap dependencies.
Porting NetBSD's pax (archivers/pax in the pkgsrc tree) or libarchive
(archivers/libarchive) would be useful. Minix's pax (and tar, since tar
is a hard link to pax) does not handle GNU tar archives with long filenames.

You might also ask on the tech-pkg list for suggestions:
http://mail-index.netbsd.org/tech-pkg/. You should glance through the
archives before posting. There are a few posts on bootstrapping Haiku,
QNX, Dragonfly, etc.

> I have one more question: Currently the GNU C compiler is the only
> compiler that, works on Minix and is also supported by pkgsrc. However,
> considering that Minix aims to have the default system BSD licensed,
> will the project require that the basic package management utilities
> (The ones involved in the bootstrapping stage) be compiled using ack? I
> am assuming that pkgsrc (if successfully ported) will be a part of the
> default system since it is the package manager.

Good question. For building the packages, I think it's fine to require
GCC. The packages aren't technically part of the base system. When we
get the clang/LLVM toolchain fully ported and integrated into MINIX, we
could look at using it to build the packages. It still might not be
worth the trouble at this stage in clang/LLVM's development. FreeBSD is
adopting clang/LLVM as the default toolchain for building their base
system, but they still plan on using GCC to build their ports tree.

Using GCC will make the project a lot easier. Several of the patches in
our bigports tree are due to ACK limitations.

Best,
Arun

Gautam BT

unread,
Mar 22, 2010, 5:41:17 AM3/22/10
to min...@googlegroups.com
Thanks for pointing out that BSD make has already been ported to Minix. Luckily I did not yet start working on it (I am currently tracing through the bootstrap shell scripts). I will update to current as soon as I can. Thanks for the other pointers as well.

--
Gautam
Reply all
Reply to author
Forward
0 new messages