aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Decouple the Hurd version from the package version.Thomas Schwinge2013-09-275-10/+13
| | | | | | | | * config.make.in (package-version): New variable. (hurd-version): Set to 0.3. * Makeconf (%: %.sh): Use package-version instead of hurd-version. * Makefile (stamp-version): Likewise. * doc/Makefile (stamp-version): Likewise.
* Generate ChangeLog files for distributions.Thomas Schwinge2013-09-272-5/+512
| | | | | | | | * gitlog-to-changelog: New file; import from gnulib's 9fc81090f6c5590bd1b0e0fa5087577a2ee43a3e:build-aux/gitlog-to-changelog. * Makefile (ChangeLog.tar, gen-ChangeLog): New targets. ($(dist-version).tar): Depend on and use the former. (clean-misc): Clean up the generated files.
* UFS is no more.Thomas Schwinge2013-09-271-4/+0
| | | | | | | * ChangeLog: Don't refer to bsdfsck/ChangeLog, ufs/ChangeLog, ufs-fsck/ChangeLog, ufs-utils/ChangeLog. Fixup for commit 84cf9c0f312637b670cc87224ff7e7c4da659e36.
* * ChangeLog: Don't refer to serverboot/ChangeLog; it is no more.Thomas Schwinge2013-09-271-1/+0
| | | | Fixup for commit a8744157214a302d84c8959b1ae99abe3ae2d7d2.
* Update mailing listsSamuel Thibault2013-09-261-4/+4
| | | | * README: Update mailing lists.
* Drop dead linksSamuel Thibault2013-09-241-2/+0
| | | | * doc/hurd.texi (BSD Unix FS): Remove link to dropped section.
* Fix missing renamesSamuel Thibault2013-09-241-3/+3
| | | | | * pflocal/sock.c (sock_connect, sock_shutdown): Rename SOCK_CONNECTED to PFLOCAL_SOCK_CONNECTED.
* Add --without-daemon option to configureSamuel Thibault2013-09-241-3/+10
| | | | | * configure.ac (--without-daemon): Add option to disable libdaemon pkgconfig test.
* Fix spurious port deallocationSamuel Thibault2013-09-211-1/+0
| | | | | * utils/storeinfo.c (parse_opt): Do not deallocate `file` port, `store_free` does it already.
* include: make /hurd/proc PID 3Justus Winter2013-09-211-1/+1
| | | | | | | Using PID 0 is problematic for various reasons. Make /hurd/proc run as PID 3 instead. * include/pids.h: Make /hurd/proc PID 3.
* proc: do not hand out PID 0Justus Winter2013-09-211-1/+1
| | | | | | Using PID 0 causes various problems. This makes genpid skip PID 0. * proc/mgt.c (genpid): Start PIDs at 1.
* Fix sscanf format for c99Samuel Thibault2013-09-211-1/+1
| | | | | * utils/rpctrace.c (parse_msgid_list): Use %ms instead of %as in sscanf format.
* Fix gcc warningSamuel Thibault2013-09-211-0/+2
| | | | * console-client/pc-mouse.c (input_loop): Return NULL.
* Fix gcc warningSamuel Thibault2013-09-211-0/+1
| | | | * console-client/xkb/kstoucs.c (find_ucs): Return 0 by default.
* Fix gcc warningSamuel Thibault2013-09-211-0/+2
| | | | | * console-client/pc-kbd.c (gnumach_v1_input_next) [XKB_SUPPORT]: Do not define `up` and `sc` variables.
* Rename SOCK_* into PFLOCAL_SOCK_*Samuel Thibault2013-09-214-36/+36
| | | | | | | | | | To avoid conflicting with glibc's SOCK_* * pflocal/io.c, pflocal/sock.c, pflocal/sock.h, pflocal/socket.c: Rename SOCK_CONNECTED into PFLOCAL_SOCK_CONNECTED, SOCK_NONBLOCK into PFLOCAL_SOCK_NONBLOCK, SOCK_SHUTDOWN_READ into PFLOCAL_SOCK_SHUTDOWN_READ, SOCK_SHUTDOWN_WRITE into PFLOCAL_SOCK_SHUTDOWN_WRITE.
* Fix gcc warningSamuel Thibault2013-09-211-1/+1
| | | | | * pflocal/io.c (copy_time): Make `to_nsec` parameter a long * instead of an unsigned long *.
* Properly return errorSamuel Thibault2013-09-211-0/+3
| | | | | * isofs/pager.c (pager_read_page): Return error returned by `store_read`, if any.
* Fix gcc warningSamuel Thibault2013-09-211-1/+1
| | | | | * isofs/lookup.c (dirscanblock): Cast entry->name into const char * before passing to isonamematch.
* Fix gcc warningSamuel Thibault2013-09-211-1/+1
| | | | | * isofs/inode.c (read_disknode): Cast dr->date into char* before calling `isodate_915`.
* Fix test for block compressionSamuel Thibault2013-09-211-2/+2
| | | | | * ext2fs/dir.c (dirscanblock): Test ds->stat against LOOKING and COMPRESS, instead of ds->type.
* Fix gcc warningSamuel Thibault2013-09-211-1/+1
| | | | | * ext2fs/dir.c (dirscanblock): Test ds->type against LOOKUP instead of LOOKING. They happened to have the same value.
* Fix setting modem control linesSamuel Thibault2013-09-211-1/+1
| | | | | * term/hurdio.c (hurdio_mdmctl): Pass `newbits` intead of `oldbits` to `tioctl_tiocmods`.
* Fix gcc warningSamuel Thibault2013-09-211-1/+1
| | | | | * term/users.c (trivfs_S_io_read): Add parentheses to make expression evaluation priority clear.
* Fix S_tioctl_tiocsetd returning errorsSamuel Thibault2013-09-211-1/+1
| | | | * term/users.c (S_tioctl_tiocsetd): Properly return `err`.
* Fix test for term open modeSamuel Thibault2013-09-211-1/+1
| | | | | * term/users.c (S_term_open_ctty): Properly test for `openmodes` containing at least O_READ or O_WRITE.
* Fix gcc warningSamuel Thibault2013-09-211-1/+1
| | | | | * exec/hostarch.c (elf_machine_matches_host): Cast `&hostinfo` into host_info_t instead of natural_t *.
* Fix gcc warningSamuel Thibault2013-09-213-3/+3
| | | | | | * libfshelp/fshelp.h (fshelp_set_options): Make `argp` pointer const. * libfshelp/set-options.c (fshelp_set_options): Likewise. * doc/hurd.texi (fshelp_set_options): Likewise.
* Fix gcc warningSamuel Thibault2013-09-211-0/+1
| | | | * libpipe/pipe.c: Include <stdlib.h>
* Fix ENOMEM handling in *_make_peropenSamuel Thibault2013-09-212-15/+20
| | | | | | | * libdiskfs/peropen-make.c (diskfs_make_peropen): Move `strdup` before port reference modifications, to fix abortion. * libnetfs/make-peropen.c (netfs_make_peropen): Check for `malloc` failure. Move `strdup` before port reference modifications, to fix abortion.
* Fix gcc warning:Samuel Thibault2013-09-211-1/+1
| | | | | * libps/write.c (noise_write): Make `t` parameter a char * instead of unsigned char *.
* Fix gcc warningSamuel Thibault2013-09-211-2/+2
| | | | | | * libtrivfs/io-restrict-auth.c (listmember): Use uid_t type instead of int. (trivfs_S_io_restrict_auth): Make `i` variable an unsigned int, like the `num` field it is compared with
* hurd: add _reply suffix to the routines in fsys_reply.defsJustus Winter2013-09-191-2/+2
| | | | * hurd/fsys_reply.defs: Add _reply suffix.
* hurd: add _reply suffix to the routines in process_reply.defsJustus Winter2013-09-191-21/+21
| | | | * hurd/process_reply.defs: Add _reply suffix.
* sutils: set up /dev/null using /bin/nullpriv in MAKEDEV.shJustus Winter2013-09-191-1/+1
| | | | | | | | This patch makes MAKEDEV.sh use the /bin/nullpriv wrapper so that the storeio translator serving /dev/zero is started without any unix privileges. * sutils/MAKEDEV.sh (mkdev): Use /bin/nullpriv for /dev/zero.
* daemons: make sure / is writable before setting up pflocalJustus Winter2013-09-191-4/+11
| | | | | | | | | runsystem.sh checks whether /servers/socket/1 exists and creates it using settrans -c if it does not. But at this point in the boot the root filesystem is normally not writable. This patch fixes this. * daemons/runsystem.sh: Make sure / is writable before attempting to set up pflocal.
* Fix cursor sizeSamuel Thibault2013-09-191-2/+2
| | | | | | | | The VGA card might have a bogus cursor end value, so better always write a value in there. * console-client/vga-dynafont.c (dynafont_set_cursor): Always pass height - 1 as end parameter for vga_set_cursor_size.
* Remove UFS supportSamuel Thibault2013-09-1757-18199/+10
| | | | | | | | | | | | | It has been unused/untested/unmaintained for a decade now, and its 4-clause BSD licence poses problem. * configure.ac (default_static): Remove ufs. * Makefile (prog-subdirs): Remove ufs, ufs-fsck and ufs-utils. * NEWS, TODO: doc/hurd.texi, doc/navigating: Remove UFS notes. * ufs: Remove directory * ufs-fsck: Remove directory * ufs-utils: Remove directory * bsdfsck: Remove directory
* Add match-options to utils sourcesJustus Winter2013-09-161-1/+1
| | | | * utils/Makefile (SRCS): Add match-options.c
* Use fsys_get_children from libcSamuel Thibault2013-09-161-1/+1
| | | | * trans/Makefile (OBJS): Remove fsysUser.o.
* Add missing includeSamuel Thibault2013-09-161-0/+1
| | | | * libfshelp/translator-list.c: Include <libgen.h> to get `dirname' prototype.
* Large store support for ext2fsRichard Braun2013-09-1610-91/+733
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a revised version of the large store patch for ext2fs, written by Ognyan Kulev. It provides support for stores larger than 2 GiB. * ext2fs/balloc.c: Use the new disk_cache_block_ref and disk_cache_block_deref functions to access blocks from the disk cache. * ext2fs/ext2fs.c (main): Update initialization call to pokel_init, and call map_hypermetadata instead of get_hypermetadata. * ext2fs/ext2fs.h: Include <hurd/store.h> and <hurd/ihash.h>. (DISK_CACHE_BLOCKS): New macro. (DC_INCORE): Likewise. (DC_UNTOUCHED): Likewise. (DC_FIXED): Likewise. (DC_DONT_REUSE): Likewise. (DC_NO_BLOCK): Likewise. (DISK_CACHE_LAST_READ_XOR) [!NDEBUG]: Likewise. (struct disk_cache_info): New structure. (disk_cache): New external variable. (disk_cache_size): Likewise. (disk_cache_blocks): Likewise. (disk_cache_bptr): Likewise. (disk_cache_info): Likewise. (disk_cache_lock): Likewise. (disk_cache_reassociation): Likewise. (disk_cache_block_ref): New declaration. (disk_cache_block_ref_ptr): Likewise. (disk_cache_block_deref): Likewise. (disk_cache_block_is_ref): Likewise. (map_hypermetadata): Likewise. (trunc_block): Cast to off_t. (round_block): Likewise. (boffs): Likewise. (bptr_index): New macro. (boffs_ptr): Rewrite as an inline function to make it look up a block from the disk cache. (bptr_offs): Likewise. (dino): Remove function, replaced with ... (dino_ref): ... this one, which adds a reference to the inode block. (dino_deref): New inline function. (record_global_poke): Make sure block is referenced. (record_indir_poke): Likewise. (sync_global_ptr): Remove block reference, and adjust call to pager_sync_some. (sync_global): Add debug call to print wait parameter. * ext2fs/getblk.c: Use the new disk_cache_block_ref and disk_cache_block_deref functions to access blocks from the disk cache. * ext2fs/hyper.c (get_hypermetadata): Read the superblock from the store now that it's not directly mapped in memory. Move the initialization of zeroblock here from ... (map_hypermetadata): ... here. Also, set the superblock pointer. (diskfs_set_hypermetadata): Add a reference to the superblock. (diskfs_readonly_changed): Update call to mprotect. * ext2fs/ialloc.c: Use the new disk_cache_block_ref, disk_cache_block_ref_ptr and disk_cache_block_deref functions to access blocks from the disk cache. * ext2fs/inode.c: Update calls that used the disk image to use the disk cache, and use the new reference handling functions where appropriate. * ext2fs/pager.c: Include <unistd.h> and "../libpager/priv.h". (disk_image): Remove global variable. (disk_pager_read_page): Update cache information. (disk_pager_write_page): Likewise. (disk_pager_notify_evict): New function. (pager_notify_evict): Call disk_pager_notify_evict appropriately. (disk_cache): New global variable. (disk_cache_size): Likewise. (disk_cache_blocks): Likewise. (disk_cache_bptr): Likewise. (disk_cache_info): Likewise. (disk_cache_hint): Likewise. (disk_cache_lock): Likewise. (disk_cache_reassociation): Likewise. (disk_cache_init): New function. (disk_cache_return_unused): Likewise. (disk_cache_block_ref): Likewise. (disk_cache_block_ref_ptr): Likewise. (disk_cache_block_deref): Likewise. (disk_cache_block_is_ref): Likewise. (create_disk_pager): Update initialization of the disk pager. * ext2fs/pokel.c (pokel_add): Drop block references with disk_cache_block_deref. (_pokel_exec): Likewise. * ext2fs/truncate.c (trunc_indirect): Use the new disk_cache_block_ref and disk_cache_block_deref functions to access blocks from the disk cache.
* Handle notification on page evictionRichard Braun2013-09-1614-36/+158
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If requested by the user, make libpager call pager_notify_evict when a page is flushed out by the kernel. Based on work by Ognyan Kulev. * console/pager.c (pager_notify_evict): New function. (user_pager_create): Update call to pager_create. * ext2fs/pager.c: (pager_notify_evict): New function. (create_disk_pager): Update call to diskfs_start_disk_pager. (diskfs_get_filemap): Update call to pager_create. * fatfs/pager.c: (pager_notify_evict): New function. (create_fat_pager): Update call to diskfs_start_disk_pager. (diskfs_get_filemap): Update call to pager_create. * isofs/pager.c: (pager_notify_evict): New function. (create_disk_pager): Update call to diskfs_start_disk_pager. (diskfs_get_filemap): Update call to pager_create. * libdiskfs/disk-pager.c (diskfs_start_disk_pager): Update definition and call to pager_create. * libdiskfs/diskfs-pager.h (diskfs_start_disk_pager): Update declaration. * libpager/data-request.c (_pager_seqnos_memory_object_data_request): Take pager's `notify_on_evict' member into account when calling memory_object_data_supply. * libpager/data-return.c (_pager_do_write_request): Handle user notification on page flush. * libpager/pager-create.c (pager_create): Update definition and set pager's `notify_on_evict' member. * libpager/pager.h (pager_create): Update declaration. (pager_notify_evict): New declaration. * libpager/priv.h (struct pager): New `notify_on_evict' member. * storeio/pager.c: (pager_notify_evict): New function. (dev_get_memory_object): Update call to pager_create. * tmpfs/pager-stubs.c (pager_notify_evict): New function. * ufs/pager.c (pager_notify_evict): New function. (create_disk_pager): Update call to diskfs_start_disk_pager. (diskfs_get_filemap): Update call to pager_create.
* exec: remove support for transparently ungziping executablesJustus Winter2013-09-159-147/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove support for transparently ungziping executables from the exec server. The code in question makes the exec server unnecessarily complex and since the exec server is an essential process, crashing it makes /hurd/init crash the whole system. Since the gzip code is not thread-safe, all access to it is serialized, so there is a trivial way for one user to delay another users gzipped executables for some unspecified time. This can be accomplished by padding any program with easily compressed data, zipping it and executing it. Using such a program as an passive translator and then triggering its execution by the filesystem translator also stalls any requests to that filesystem (observed using the libdiskfs-based ext2fs). Since compressed executables cannot be mapped into the memory, they have to be uncompressed into allocated memory first. This is slower and any user with access to the exec server can make it allocate arbitrary amounts of memory. If the Hurd had proper memory accounting, this would probably be a way around it. So the compression support in exec seemingly creates various issues for little value, at least with the abundance of nonvolatile memory available today. * exec/Makefile: Remove gzip related files. * exec/exec.c: Remove anything #ifdef GZIPped. * exec/unzip.c: Move to libstore. * exec/crypt.h: Likewise. * exec/gzip.h: Likewise. * exec/inflate.c: Likewise. * exec/tailor.h: Likewise. * exec/util.c: Likewise. * libstore/Makefile: Remove the vpath magic for looking up the zip stuff.
* exec: remove support for transparently unbzip2ing executablesJustus Winter2013-09-153-129/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Remove support for transparently unbzip2ing executables from the exec server. The code in question makes the exec server unnecessarily complex and since the exec server is an essential process, crashing it makes /hurd/init crash the whole system. Since the bzip2 code is not thread-safe, all access to it is serialized, so there is a trivial way for one user to delay another users bzip2ed executables for some unspecified time. This can be accomplished by padding any program with easily compressed data, zipping it and executing it. Using such a program as an passive translator and then triggering its execution by the filesystem translator also stalls any requests to that filesystem (observed using the libdiskfs-based ext2fs). Since compressed executables cannot be mapped into the memory, they have to be uncompressed into allocated memory first. This is slower and any user with access to the exec server can make it allocate arbitrary amounts of memory. If the Hurd had proper memory accounting, this would probably be a way around it. So the compression support in exec seemingly creates various issues for little value, at least with the abundance of nonvolatile memory available today. * exec/Makefile: Remove bzip2 related files. * exec/exec.c: Remove anything #ifdef BZIP2ed. * exec/do-bunzip2.c: Move to libstore.
* trans: add mtab translatorJustus Winter2013-09-152-3/+805
| | | | | | | | | | | The mtab translator provides an mtab file that is dynamically created on demand. It is populated with information about active translators bound below the given path that is accumulated by traversing the translator tree. It can also be invoked as normal program that prints the requested information to stdout. * trans/mtab.c: New file. * trans/Makefile: Build mtab.
* hurd: add fsys_get_sourceJustus Winter2013-09-152-0/+17
| | | | | | | | | | | | Return information about the source of the receiving filesystem. If the concept of a source is applicable, SOURCE should refer to the source of the receiving translator and should be a description considered appropriate in the context of the translator. For example for the case of block device based filesystems, SOURCE should be the file name of the underlying block device. * hurd/fsys.defs: Add fsys_get_source. * hurd/fsys_reply.defs: Add fsys_get_source.
* trans/symlink.c: add fsys_get_sourceJustus Winter2013-09-151-0/+7
| | | | | | Create a server function returning EOPNOTSUPP. * trans/symlink.c (S_fsys_get_source): New function.
* libtrivfs: add fsys_get_sourceJustus Winter2013-09-154-3/+70
| | | | | | | * libtrivfs/Makefile: Add fsys-get-source.c and get-source.c * libtrivfs/trivfs.h: Add trivfs_get_source. * libtrivfs/fsys-get-source.c: New file. * libtrivfs/get-source.c: Likewise.
* libnetfs: add fsys_get_sourceJustus Winter2013-09-154-3/+72
| | | | | | | | | | | Add a user overridable function netfs_get_source with a default implementation returning EOPNOTSUPP. Add a server function for fsys-get-source. * libnetfs/Makefile: Add fsys-get-source.c and get-source.c * libnetfs/netfs.h: Add netfs_get_source. * libnetfs/fsys-get-source.c: New file. * libnetfs/get-source.c: Likewise.