Porting pkgsrc
From NetBSD Wiki
This article describes the steps that are necessary to port pkgsrc to a new platform.
Porting pkgsrc to a new operating system
To port pkgsrc to a new operating system (called MyOS in this example), you need to touch the following files:
- bootstrap/mods/mk/MyOS.sys.mk: This file contains some basic definitions, for
example the name of the C compiler.
- mk/bsd.prefs.mk: Insert code that defines the variables OPSYS, OS_VERSION, LOWER_OS_VERSION, LOWER_VENDOR, MACHINE_ARCH, OBJECT_FMT, APPEND_ELF, and the other variables that appear in this file.
- mk/platform/MyOS.mk: This file contains the platform-specific definitions that are used by pkgsrc. Start by copying one of the other files and edit it to your needs.
- mk/platform/MyOS.pkg.dist: This file contains a list of directories, together with their permission bits and ownership. These directories will be created automatically with every package that does not explicitly set NO_MTREE. There have been some discussions about whether this file is needed at all, but with no result.
- mk/platform/MyOS.x11.dist: Just copy one of the pre-existing x11.dist files to your MyOS.x11.dist.
- mk/tools/bootstrap.mk: On some operating systems, the tools that are provided with the base system are not good enough for pkgsrc. For example, there are many versions of Template:sed that have a narrow limit on the line length they can process. Therefore pkgsrc brings its own tools, which can be enabled here.
- mk/tools/MyOS.mk: This file defines the paths to all the tools that are needed by one or the other package in pkgsrc, as well as by pkgsrc itself. Find out where these tools are on your platform and add them.
Now, you should be able to build some basic packages, like lang/perl5 or shells/bash.
