Commit graph

390 commits

Author SHA1 Message Date
Ben Gras 6b6d114a21 import netbsd libprop 2011-12-22 18:03:13 +01:00
Ben Gras 668fa5cf2a nbsd.config: make timezone explicit 2011-12-14 17:02:31 +01:00
Ben Gras 194e51aff0 workaround for cvs not handling many args 2011-12-14 01:14:36 +01:00
Ben Gras 3b0ee3f234 fix bzip2 location in nbsd_ports 2011-12-06 16:22:54 +01:00
Vivek Prakash 79bfef9aab import NetBSD bzip2 and libbz2 2011-11-18 11:11:04 +01:00
Ben Gras 41f823ae4c release.sh: add -e
. allows extra files in release for flexibility
	. written by Jan Wieck
2011-11-15 14:18:56 +01:00
Ben Gras 5c00743626 Switch to NetBSD passwd format
Based on work by Vivek Prakash and Gianluca Guida.

See UPDATING about caveats on currently existing accounts.

	. restores netbsd libc pwcache functions
2011-11-14 14:47:42 +00:00
Ben Gras cedeabb357 mainstream-format fstab format
. detect both formats in /etc/rc
	. generate new format in setup
	. obsoletes /etc/fstab.local: everything can go in /etc/fstab
	. put shutdown/reboot/halt and a copy of /usr/adm/wtmp
	  (/etc/wtmp) on root FS so that we can do shutdown checks before
	  mounting /usr
	. new fstab format makes getfsent() and friends work
2011-11-14 14:47:28 +00:00
Arun Thomas d134121b09 Install servers in GCC/clang case 2011-11-02 18:46:06 +01:00
Ben Gras ca3fe9fdab fix typo 2011-10-25 00:05:38 +02:00
Ben Gras 5cdc54a699 Clarify install instructions.
Thanks to Chris Johns for feedback.
2011-10-23 16:19:13 -07:00
Ben Gras 391372193c release: by default leave src/.git
. facilitates easy updates of installs
	. removal can be restored with release.sh -m
2011-10-07 13:56:55 +00:00
Ben Gras 0c3983b25a update/fix manpage support
. add bsd-style MLINKS to minix man set, restoring aliases
	  (e.g. man add64 -> int64)
	. update daily cron script to run makewhatis and restore makewhatis
	  in man Makefile (makedb), restores functionality of man -k
	. netbsd imports of man, mdocml, makewhatis, libutil, apropos
	. update man.conf with manpage locations, restoring man [-s] <section>
	. throws out some obsolete manpages
2011-09-28 15:24:15 +00:00
Ben Gras bc0a39238e worldstone benchmark script
. also imports seq(1) to help it
	. add -C option to time(1) to print tsc difference
	. increase col width for ministat for tsc numbers
2011-09-24 14:49:55 +00:00
Ben Gras a7590083f1 sort is not a nbsd port (yet) 2011-09-01 16:14:04 +00:00
Ben Gras 7b6c90125c nbsd_fetch: force cvs to use ssh 2011-09-01 15:48:24 +00:00
Ben Gras 121d8aba4d release.sh: undo tarup add 2011-08-31 22:00:42 +00:00
Vivek Prakash 12d9a08f0d import NetBSD mkdir
. add symlink from old location /usr/bin/mkdir for
	  for compatability
2011-08-25 14:35:12 +00:00
Arun Thomas 43e574558f tools/Makefile: tweak AVFS/APFS logic
-Fixes GCC/clang build issue
2011-08-18 18:54:52 +02:00
Thomas Veerman a6bd3f4a22 Merge AVFS and APFS 2011-08-17 13:40:36 +00:00
Ben Gras 1f198f75d7 pre-install pkg_tarup 2011-08-16 15:24:59 +00:00
Ben Gras 4c3e216cbd release.sh: generic package names 2011-08-15 21:46:23 +00:00
Ben Gras 2e84a3f594 release.sh: minor -L fix 2011-08-15 21:40:14 +00:00
Ben Gras b9d027bfe2 release.sh: fix -l, add -L option for local packages
. by Jan Wieck
2011-08-03 12:53:01 +02:00
Arun Thomas 2ad6214ef0 Add sort to nbsd_ports list 2011-07-25 11:43:44 +02:00
Ben Gras 51ffecc181 import elf-only -lcurses
. abandons mixer, gomoku, talk, talkd, top from base system
	. compile top with clang so no ack-compiled program
	  needs -lcurses any more
2011-07-25 11:08:17 +02:00
Vivek Prakash 1ea07af9da Replace uniq with NetBSD version 2011-07-24 21:40:02 +02:00
Ben Gras d2897e946f release.sh: jail building adjustments 2011-07-22 22:10:21 +02:00
Arun Thomas 06617e7fdf Import NetBSD mkdep 2011-07-22 17:28:27 +02:00
Arun Thomas 159b8f71b7 Use 'strip -s' for ELF image 2011-07-22 07:52:34 +02:00
Arun Thomas 0cd71233e0 release.sh: USB build fix
-Update stat syntax
2011-07-20 16:57:51 +02:00
Arun Thomas 70712c015e release.sh: add missing bootstrap util 2011-07-20 16:03:06 +02:00
Ben Gras f789fee254 import netbsd sed
. speeds up mkdep (i.e. world builds) significantly
	. have to keep minix /bin/sed for a while because previous
	  usr/etc/rc depends on it
	. force mkdep to use /usr/bin/sed for speedup
2011-07-20 15:14:48 +02:00
Arun Thomas 2a2f25bf29 release.sh: Add date to image name 2011-07-20 11:47:09 +02:00
Arun Thomas 0d9095d116 Fix ISO building
-Update release.sh to use new stat syntax
-Add missing utils to release bootstrap dirs
-Remove needless dependency in ramdisk Makefile
2011-07-20 10:36:37 +02:00
Vivek Prakash 51e66a47d8 import libterminfo, terminfo.db and stat command 2011-07-18 16:17:14 +02:00
Vivek Prakash 49cab1c73c import NetBSD stat 2011-07-18 16:16:57 +02:00
Ben Gras 044cd57720 release.sh: jail precaution 2011-07-14 18:36:40 +02:00
Ben Gras 6cdcbc06d5 release.sh: jail install
. Feature to do a 'release' into a permanent
	  and usable FS hierarchy, usable with chroot
	. Just like the temporary staging hierarchy really
	. Useful to checking out and building the latest
	  version of minix from a host minix; to
	  (1) make an uptodate minix jail, and
	  (2) make a sterile, reproducible jail environment, and
	  (3) use as disposable environment in which moving /usr/pkg
	      is ok
	  (i.e. pkgsrc bulk builds)
2011-07-14 16:28:39 +02:00
Ben Gras ebffaa4250 import libcrypt
. move crypt() from minix-specific to netbsd -lcrypt
2011-07-13 18:19:27 +02:00
Vivek Prakash 97c7d358ea Replace indent with NetBSD version
- minix-port.patch is empty as it compiles unchanged
2011-07-05 12:37:57 +02:00
Ben Gras cf3b75c687 tools/Makefile: don't install servers (workaround)
. if the build target is invoked again for the install target, the
     stack sizes aren't set properly. A workaround is to only build
     and not install the servers. (Installing them doesn't really make
     sense anyway.)
2011-07-03 15:01:18 +02:00
Arun Thomas db0be09803 release.sh: Add /bin/rm to bootstrap 2011-06-30 14:00:24 +02:00
Arun Thomas 35305f8f7c release.sh: install(1) should go in /bin 2011-06-30 13:42:43 +02:00
Ben Gras 83b3a3df74 release.sh: add /usr/pkg/bin to $PATH for clang 2011-06-29 19:24:50 +02:00
Arun Thomas 2e8d1eda1b Replace m4 with NetBSD version
-Create usr.bin hierarchy
-Update minix-port.patch to include m4
2011-06-29 09:33:30 +02:00
Thomas Cort 69bf8e4f71 add pkgsrc hooks for building pkgs w/nbsd_libc
Add two makefiles to manage compiling packages with NetBSD libc.

  *  minix.libc.mk contains the proper CFLAGS/LDFLAGS
  *  pkgsrchooks.mk contains the logic for setting the flags.
  *  update bmake

Several pkg-config files were added to help pkgsrc learn about
the c, minlib, and compat_minix libraries.
2011-06-27 15:10:34 +02:00
Arun Thomas 93ae43f577 boot: Add multiboot support
Not yet fully spec-compliant; work in progress
2011-06-24 17:21:51 +02:00
Ben Gras aba3746220 release.sh: update location of install cmd 2011-06-24 12:17:24 +02:00
Gianluca Guida cc17b27a2b Build NetBSD libc library in world in ELF mode.
3 sets of libraries are built now:
  . ack: all libraries that ack can compile (/usr/lib/i386/)
  . clang+elf: all libraries with minix headers (/usr/lib/)
  . clang+elf: all libraries with netbsd headers (/usr/netbsd/)

Once everything can be compiled with netbsd libraries and headers, the
/usr/netbsd hierarchy will be obsolete and its libraries compiled with
netbsd headers will be installed in /usr/lib, and its headers
in /usr/include. (i.e. minix libc and current minix headers set
will be gone.)

To use the NetBSD libc system (libraries + headers) before
it is the default libc, see:
   http://wiki.minix3.org/en/DevelopersGuide/UsingNetBSDCode
This wiki page also documents the maintenance of the patch
files of minix-specific changes to imported NetBSD code.

Changes in this commit:
  . libsys: Add NBSD compilation and create a safe NBSD-based libc.
  . Port rest of libraries (except libddekit) to new header system.
  . Enable compilation of libddekit with new headers.
  . Enable kernel compilation with new headers.
  . Enable drivers compilation with new headers.
  . Port legacy commands to new headers and libc.
  . Port servers to new headers.
  . Add <sys/sigcontext.h> in compat library.
  . Remove dependency file in tree.
  . Enable compilation of common/lib/libc/atomic in libsys
  . Do not generate RCSID strings in libc.
  . Temporarily disable zoneinfo as they are incompatible with NetBSD format
  . obj-nbsd for .gitignore
  . Procfs: use only integer arithmetic. (Antoine Leca)
  . Increase ramdisk size to create NBSD-based images.
  . Remove INCSYMLINKS handling hack.
  . Add nbsd_include/sys/exec_elf.h
  . Enable ELF compilation with NBSD libc.
  . Add 'make nbsdsrc' in tools to download reference NetBSD sources.
  . Automate minix-port.patch creation.
  . Avoid using fstavfs() as it is *extremely* slow and unneeded.
  . Set err() as PRIVATE to avoid name clash with libc.
  . [NBSD] servers/vm: remove compilation warnings.
  . u32 is not a long in NBSD headers.
  . UPDATING info on netbsd hierarchy
  . commands fixes for netbsd libc
2011-06-24 11:46:30 +02:00
Ben Gras 900a273d3d chrootmake: obj-* cleanup instead of just obj-ack 2011-06-08 16:19:09 +02:00
Ben Gras 230b7775fe changes for detecting and building for clang/binutils elf
and minor fixes:
 . add ack/clean target to lib, 'unify' clean target
 . add includes as library dependency
 . mk: exclude warning options clang doesn't have in non-gcc
 . set -e in lib/*.sh build files
 . clang compile error circumvention (disable NOASSERTS for release builds)
2011-06-07 16:49:52 +02:00
Ben Gras f011d59d67 release.sh, tell_config: variables from /usr/src 2011-06-07 14:34:14 +02:00
Ben Gras cb13f32a7c release.sh fixes, updates, improvements for git, usb, readability 2011-06-01 22:53:49 +02:00
Ben Gras 455b809b17 made boot/ into hierarchy of programs
work of Antoine Leca
2011-04-28 01:33:23 +02:00
Thomas Veerman 20a04a068d Generate .gitignore file for tools directory 2011-04-21 13:20:55 +00:00
Ben Gras db8c7af0b8 release.sh: explicitly use the pkgin pkg_install pkg_add
. when switching from the base pkg_install to the pkgin pkg_install,
    the version number changed, causing a compatability problem if the
    old base system binary was inadvertently left behind.

  . this change checks for that situation by specifically invoking
    the pkgin instance of pkg_install and telling the user to install
    it if it doesn't exist.
2011-03-10 12:54:58 +00:00
Ben Gras 287fee89cb add NOASSERTS make flag that disables assert()s (NDEBUG=1).
. made some checks in vfs/vnode.c also respond to NDEBUG=1.
  . turned on in release builds
2011-02-16 18:58:30 +00:00
Ben Gras a909eaa9b1 minor release.sh fixes and tweaks
- pre-install bmake for further (future) base/pkgsrc disentanglement          
- print url properly for pre-install source                                   
- correct <minix/sys_config.h> source location
2011-02-09 16:48:10 +00:00
Ben Gras e912f6ac38 take pkg_install out of the base system and pre-install it using the
pkgsrc binary packages.

rationale:
  . pkg_install (which is the pkg_* tools) is entangled with pkgsrc,
    not with minix, so tracking it from pkgsrc (easier than with
    base system) makes more sense
  . simplifies upstreaming minix specific changes for pkg_* tools
  . reduce pkgsrc-in-basesystem maintenance burden
2011-01-28 00:02:27 +00:00
Ben Gras b0aea49465 update package names in packages.install to new pkgsrc versions 2011-01-27 23:59:02 +00:00
Ben Gras d1cfc50811 mkboot: include git id in image name if available. 2010-11-25 15:25:17 +00:00
Ben Gras fd2b22474f update for releases with git. 2010-11-11 02:00:12 +00:00
Ben Gras 3cc13b29f0 include minix 'all' package. 2010-09-20 15:09:32 +00:00
Ben Gras 300773cdca . forget obsolete /usr/local/bin in $PATH
. update release.sh's notion of where packages are
  . update release.sh's notion of how many files are on root
    as -xdev won't work anymore to separate /usr from /
2010-09-20 11:07:53 +00:00
Ben Gras 467a01024e bump trunk version to 3.1.9
make issue.install not include version
2010-09-15 08:47:42 +00:00
Arun Thomas 207e88d3c4 Update release script for pkgsrc 2010-09-10 17:00:30 +00:00
Tomas Hruby bf6f0216d5 tools/Makefile uses padtext only when building with ack 2010-09-01 07:46:51 +00:00
Erik van der Kouwe a0bb199f69 Release script improvements, moving towards having the ramdisk working again 2010-08-29 19:22:42 +00:00
Arun Thomas a78608ec86 Fix dependency problems in the build 2010-08-26 19:54:49 +00:00
Ben Gras 8da0925650 release.sh - let some packages come pre-installed (right now just pkgin) 2010-08-05 13:56:51 +00:00
Thomas Veerman 5bf3967f26 Rename mkfs to mkfs.mfs and fsck to fsck.mfs. Add /sbin to root's PATH. 2010-08-05 12:35:00 +00:00
Erik van der Kouwe df0ba02a38 Multiboot support (contributed by Feiran "Fam" Zheng);
keep in mind that GRUB needs to be patched to read MFS for now;
use /boot/image_latest to boot the last compiled image in GRUB
2010-07-23 14:24:34 +00:00
Ben Gras 122a32b928 mkboot fix, missing " 2010-07-21 14:23:52 +00:00
Ben Gras 63deb069bb uname: make uname -r and -v both print out full version info.
the world seems to expect this, and do this.
2010-07-21 12:47:48 +00:00
Arun Thomas 368f77ceea Fix building of image target 2010-07-06 09:19:04 +00:00
Cristiano Giuffrida 3de6a807ce Configure settings for system services dynamically with the new service edit command. 2010-07-05 19:37:08 +00:00
Ben Gras 2f3c9c04cc chrootmake: don't call makewhatis any more 2010-06-26 01:56:28 +00:00
Arun Thomas e10916476a Move mkfiles from /etc/mk to /usr/share/mk
Simplifies pkgsrc porting.
2010-06-25 19:33:56 +00:00
Ben Gras 32c757b12c chrootmake: don't invoke binsizes. 2010-06-22 15:44:29 +00:00
Tomas Hruby 21725c107d cd subdir && $(MAKE) targets -> $(MAKE) -C subdir targets
- first step towards parallel building
2010-06-22 12:03:09 +00:00
Erik van der Kouwe 6312d7238b bzip2 is now the default for releases 2010-06-17 12:00:55 +00:00
Arun Thomas 1b2c01db1b Makefile updates:
Turn on optimization
Remove some redundancy in FLAGS
2010-06-11 16:05:36 +00:00
Erik van der Kouwe 65764218f7 Remove dependency of release.sh on bc, du option to give overhead totals 2010-06-10 11:14:04 +00:00
Erik van der Kouwe a8cf207549 release.sh: avoid egrep -x which the base system doesn't support 2010-06-09 14:32:19 +00:00
Ben Gras 4fe558f44f issue.install: 3.1.8 2010-06-09 14:02:35 +00:00
Ben Gras a98b9ca8dc tools: fix installing includes. 2010-06-07 10:10:27 +00:00
Arun Thomas 8c69c6cd7f Remove gcc-4.1.1 from packages list 2010-06-04 12:36:40 +00:00
Erik van der Kouwe 8afc228c48 This patch changes the release script in the following ways:
- A staging directory is always used to avoid oversized images;
- As a consequence, the zero-filling is removed so no more "out of 
  space" errors should be printed to the console;
- The root and usr partition sizes are computed so less space should be 
  wasted (the root partition gets extra 1MB zones and 64 inodes for 
  run-time though and hardlinks/holes make the used space slightly less
  than expected); USRMB (and the new ROOTMB) are now used to enforce 
  a minimum size rather than set the size;
- TMPDISK1-3 are renamed to more meaningful names (and TMPDISK2 is 
  dropped because a separate tmp directory is no longer needed);
- The ramdisks are truncated at the end to save memory (not sure 
  whether it is actually released though).
2010-06-04 05:09:44 +00:00
Arun Thomas 2fd1f18803 Release script: Remove .d/.depend files from CD 2010-06-01 14:44:36 +00:00
Ben Gras cc6fed4c51 packages: don't put oss on cd. 2010-06-01 11:11:35 +00:00
Arun Thomas b48b037fbe Reorganize some directories
servers/hgfs/hgfs_server => servers/hgfs
servers/hgfs/libhgfs => lib/libhgfs
servers/rs/service => commands/service
drivers/memory/memory_driver => drivers/memory
drivers/memory/ramdisk => drivers/ramdisk
2010-05-26 22:49:57 +00:00
Erik van der Kouwe 456a125e00 Minor patch: increase size of root partition for minimal release, eve very small additions with -c made it fail 2010-05-19 20:11:22 +00:00
Ben Gras 987d3e6d85 packages: gcc-libs renamed, include gcc-4.4.3 2010-05-19 10:22:57 +00:00
Tomas Hruby b09bcf6779 Scheduling server (by Bjorn Swift)
In this second phase, scheduling is moved from PM to its own
scheduler (see r6557 for phase one). In the next phase we hope to a)
include useful information in the "out of quantum" message and b)
create some simple scheduling policy that makes use of that
information.

When the system starts up, PM will iterate over its process table and
ask SCHED to take over scheduling unprivileged processes. This is
done by sending a SCHEDULING_START message to SCHED. This message
includes the processes endpoint, the parent's endpoint and its nice
level. The scheduler adds this process to its schedproc table, issues
a schedctl, and returns its own endpoint to PM - as the endpoint of
the effective scheduler. When a process terminates, a SCHEDULING_STOP
message is sent to the scheduler.

The reason for this effective endpoint is for future compatibility.
Some day, we may have a scheduler that, instead of scheduling the
process itself, forwards the SCHEDULING_START message on to another
scheduler.

PM has information on who schedules whom. As such, scheduling
messages from user-land are sent through PM. An example is when
processes change their priority, using nice(). In that case, a
getsetpriority message is sent to PM, which then sends a
SCHEDULING_SET_NICE to the process's effective scheduler.

When a process is forked through PM, it inherits its parent's
scheduler, but is spawned with an empty quantum. As before, a request
to fork a process flows through VM before returning to PM, which then
wakes up the child process. This flow has been modified slightly so
that PM notifies the scheduler of the new process, before waking up
the child process. If the scheduler fails to take over scheduling,
the child process is torn down and the fork fails with an erroneous
value.

Process priority is entirely decided upon using nice levels. PM
stores a copy of each process's nice level and when a child is
forked, its parent's nice level is sent in the SCHEDULING_START
message. How this level is mapped to a priority queue is up to the
scheduler. It should be noted that the nice level is used to
determine the max_priority and the parent could have been in a lower
priority when it was spawned. To prevent a CPU intensive process from
hawking the CPU by continuously forking children that get scheduled
in the max_priority, the scheduler should determine in which queue
the parent is currently scheduled, and schedule the child in that
same queue.

Other fixes: The USER_Q in kernel/proc.h was incorrectly defined as
NR_SCHED_QUEUES/2. That results in a "off by one" error when
converting priority->nice->priority for nice=0. This also had the
side effect that if someone were to set the MAX_USER_Q to something
else than 0, then USER_Q would be off.
2010-05-18 13:39:04 +00:00
Erik van der Kouwe f5bce90216 Add -M release.sh option to write out a symbol map, either to /usr/src on the image (without -m) or to the tools directory (with -m) 2010-05-17 16:52:48 +00:00
Arun Thomas 5706670029 Convert boot/ and commands/ over to bsdmake 2010-05-12 16:28:54 +00:00
Erik van der Kouwe d4188dcd5c New options for release script: -m to make tiny image, ZIP to set compressor 2010-05-10 18:02:15 +00:00
Ben Gras a131085a5b cd boot workaround for bioses that didn't want to boot >4 image sectors.
boot is a normal binary with a.out again. use 'cdbootblock,' a CDBOOT
variant of bootblock, both from bootblock.s, as the first boot image
that then loads boot, exactly like the bootblock loads boot when booting
from harddisk. the sector numbers (2048 byte iso sectors) are patched in
by writeisofs, like installboot does for bootblock. bootblock unchanged.
2010-04-26 22:07:21 +00:00
Cristiano Giuffrida 45db6482e8 Prioritized NOTIFY messages for reliable asynchonrous delivery of system events. 2010-03-22 23:44:55 +00:00