svn commit: r247807 - in projects/calloutng: bin/sh contrib/libyaml lib lib/libyaml sbin/devd share/man/man4 share/man/man7 share/mk sys/arm/arm sys/compat/linprocfs sys/compat/linux sys/dev/ath sy...
Davide Italiano
davide at FreeBSD.org
Mon Mar 4 18:07:36 UTC 2013
Author: davide
Date: Mon Mar 4 18:07:28 2013
New Revision: 247807
URL: http://svnweb.freebsd.org/changeset/base/247807
Log:
Merge from head (and resolve conflicts).
Added:
projects/calloutng/contrib/libyaml/
- copied from r247806, head/contrib/libyaml/
projects/calloutng/lib/libyaml/
- copied from r247806, head/lib/libyaml/
projects/calloutng/tools/regression/bin/sh/builtins/trap12.0
- copied unchanged from r247806, head/tools/regression/bin/sh/builtins/trap12.0
Modified:
projects/calloutng/bin/sh/trap.c
projects/calloutng/lib/Makefile
projects/calloutng/sbin/devd/devd.cc
projects/calloutng/sbin/devd/devd.hh
projects/calloutng/share/man/man4/mvs.4
projects/calloutng/share/man/man7/ports.7
projects/calloutng/share/mk/bsd.libnames.mk
projects/calloutng/sys/arm/arm/busdma_machdep-v6.c
projects/calloutng/sys/compat/linprocfs/linprocfs.c
projects/calloutng/sys/compat/linux/linux_file.c
projects/calloutng/sys/compat/linux/linux_socket.c
projects/calloutng/sys/dev/ath/ath_hal/ah.h
projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416.h
projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
projects/calloutng/sys/dev/ath/if_athvar.h
projects/calloutng/sys/kern/kern_condvar.c
projects/calloutng/sys/kern/kern_descrip.c
projects/calloutng/sys/kern/kern_event.c
projects/calloutng/sys/kern/kern_resource.c
projects/calloutng/sys/kern/kern_synch.c
projects/calloutng/sys/kern/kern_timeout.c
projects/calloutng/sys/kern/subr_log.c
projects/calloutng/sys/kern/sys_generic.c
projects/calloutng/sys/kern/uipc_usrreq.c
projects/calloutng/sys/modules/mqueue/Makefile
projects/calloutng/sys/sys/filedesc.h
projects/calloutng/sys/vm/vm_object.c
projects/calloutng/tools/make_libdeps.sh
projects/calloutng/usr.bin/calendar/calendars/calendar.birthday
projects/calloutng/usr.bin/find/extern.h
projects/calloutng/usr.bin/find/find.1
projects/calloutng/usr.bin/find/function.c
projects/calloutng/usr.bin/find/option.c
projects/calloutng/usr.bin/hexdump/conv.c
projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh
projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-disk.sh
projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-installpackages.sh
projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-mountdisk.sh
projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-newfs.sh
projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-packages.sh
projects/calloutng/usr.sbin/pc-sysinstall/backend/functions.sh
projects/calloutng/usr.sbin/pc-sysinstall/conf/pc-sysinstall.conf
projects/calloutng/usr.sbin/tzsetup/tzsetup.c
Directory Properties:
projects/calloutng/ (props changed)
projects/calloutng/sbin/ (props changed)
projects/calloutng/share/man/man4/ (props changed)
projects/calloutng/sys/ (props changed)
projects/calloutng/sys/conf/ (props changed)
projects/calloutng/usr.bin/calendar/ (props changed)
Modified: projects/calloutng/bin/sh/trap.c
==============================================================================
--- projects/calloutng/bin/sh/trap.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/bin/sh/trap.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -455,7 +455,6 @@ dotrap(void)
last_trapsig = i;
savestatus = exitstatus;
evalstring(trap[i], 0);
- exitstatus = savestatus;
/*
* If such a command was not
@@ -464,9 +463,11 @@ dotrap(void)
* trap action to have an effect
* outside of it.
*/
- if (prev_evalskip != 0) {
+ if (evalskip == 0 ||
+ prev_evalskip != 0) {
evalskip = prev_evalskip;
skipcount = prev_skipcount;
+ exitstatus = savestatus;
}
if (i == SIGCHLD)
Modified: projects/calloutng/lib/Makefile
==============================================================================
--- projects/calloutng/lib/Makefile Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/lib/Makefile Mon Mar 4 18:07:28 2013 (r247807)
@@ -119,6 +119,7 @@ SUBDIR= ${SUBDIR_ORDERED} \
${_libvmmapi} \
libwrap \
liby \
+ libyaml \
libz \
${_atf} \
${_bind} \
Modified: projects/calloutng/sbin/devd/devd.cc
==============================================================================
--- projects/calloutng/sbin/devd/devd.cc Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sbin/devd/devd.cc Mon Mar 4 18:07:28 2013 (r247807)
@@ -116,7 +116,7 @@ static struct pidfh *pfh;
int Dflag;
int dflag;
int nflag;
-int romeo_must_die = 0;
+static volatile sig_atomic_t romeo_must_die = 0;
static const char *configfile = CF;
@@ -319,7 +319,7 @@ media::do_match(config &c)
// the name of interest, first try device-name and fall back
// to subsystem if none exists.
value = c.get_variable("device-name");
- if (value.length() == 0)
+ if (value.empty())
value = c.get_variable("subsystem");
if (Dflag)
fprintf(stderr, "Testing media type of %s against 0x%x\n",
@@ -460,7 +460,7 @@ config::open_pidfile()
{
pid_t otherpid;
- if (_pidfile == "")
+ if (_pidfile.empty())
return;
pfh = pidfile_open(_pidfile.c_str(), 0600, &otherpid);
if (pfh == NULL) {
@@ -528,7 +528,7 @@ config::add_notify(int prio, event_proc
void
config::set_pidfile(const char *fn)
{
- _pidfile = string(fn);
+ _pidfile = fn;
}
void
@@ -585,7 +585,7 @@ config::expand_one(const char *&src, str
src++;
// $$ -> $
if (*src == '$') {
- dst.append(src++, 1);
+ dst += *src++;
return;
}
@@ -593,7 +593,7 @@ config::expand_one(const char *&src, str
// Not sure if I want to support this or not, so for now we just pass
// it through.
if (*src == '(') {
- dst.append("$");
+ dst += '$';
count = 1;
/* If the string ends before ) is matched , return. */
while (count > 0 && *src) {
@@ -601,23 +601,23 @@ config::expand_one(const char *&src, str
count--;
else if (*src == '(')
count++;
- dst.append(src++, 1);
+ dst += *src++;
}
return;
}
- // ${^A-Za-z] -> $\1
+ // $[^A-Za-z] -> $\1
if (!isalpha(*src)) {
- dst.append("$");
- dst.append(src++, 1);
+ dst += '$';
+ dst += *src++;
return;
}
// $var -> replace with value
do {
- buffer.append(src++, 1);
+ buffer += *src++;
} while (is_id_char(*src));
- dst.append(get_variable(buffer.c_str()));
+ dst.append(get_variable(buffer));
}
const string
@@ -653,7 +653,7 @@ config::expand_string(const char *src, c
}
bool
-config::chop_var(char *&buffer, char *&lhs, char *&rhs)
+config::chop_var(char *&buffer, char *&lhs, char *&rhs) const
{
char *walker;
@@ -912,9 +912,7 @@ event_loop(void)
server_fd = create_socket(PIPE);
accepting = 1;
max_fd = max(fd, server_fd) + 1;
- while (1) {
- if (romeo_must_die)
- break;
+ while (!romeo_must_die) {
if (!once && !dflag && !nflag) {
// Check to see if we have any events pending.
tv.tv_sec = 0;
@@ -1076,8 +1074,7 @@ set_variable(const char *var, const char
static void
gensighand(int)
{
- romeo_must_die++;
- _exit(0);
+ romeo_must_die = 1;
}
static void
Modified: projects/calloutng/sbin/devd/devd.hh
==============================================================================
--- projects/calloutng/sbin/devd/devd.hh Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sbin/devd/devd.hh Mon Mar 4 18:07:28 2013 (r247807)
@@ -41,8 +41,6 @@ class config;
class var_list
{
public:
- var_list() {}
- virtual ~var_list() {}
/** Set a variable in this var list.
*/
void set_variable(const std::string &var, const std::string &val);
@@ -68,7 +66,6 @@ private:
struct eps
{
public:
- eps() {}
virtual ~eps() {}
/** Does this eps match the current config?
*/
@@ -144,7 +141,7 @@ private:
class config
{
public:
- config() : _pidfile("") { push_var_table(); }
+ config() { push_var_table(); }
virtual ~config() { reset(); }
void add_attach(int, event_proc *);
void add_detach(int, event_proc *);
@@ -172,7 +169,7 @@ protected:
void parse_files_in_dir(const char *dirname);
void expand_one(const char *&src, std::string &dst);
bool is_id_char(char) const;
- bool chop_var(char *&buffer, char *&lhs, char *&rhs);
+ bool chop_var(char *&buffer, char *&lhs, char *&rhs) const;
private:
std::vector<std::string> _dir_list;
std::string _pidfile;
Modified: projects/calloutng/share/man/man4/mvs.4
==============================================================================
--- projects/calloutng/share/man/man4/mvs.4 Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/share/man/man4/mvs.4 Mon Mar 4 18:07:28 2013 (r247807)
@@ -24,7 +24,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd April 27, 2010
+.Dd March 3, 2013
.Dt MVS 4
.Os
.Sh NAME
@@ -62,7 +62,7 @@ command latency.
.It Va hint.mvs. Ns Ar X Ns Va .cccc
defines number of completed commands for CCC, which trigger interrupt without
waiting for specified coalescing timeout.
-.It Va hint.mvs. Ns Ar X Ns Va .pm_level
+.It Va hint.mvsch. Ns Ar X Ns Va .pm_level
controls SATA interface Power Management for the specified channel,
allowing some power to be saved at the cost of additional command
latency.
@@ -82,7 +82,7 @@ driver initiates SLUMBER PM state transi
Note that interface Power Management is not compatible with
device presence detection.
A manual bus reset is needed on device hot-plug.
-.It Va hint.mvs. Ns Ar X Ns Va .sata_rev
+.It Va hint.mvsch. Ns Ar X Ns Va .sata_rev
setting to nonzero value limits maximum SATA revision (speed).
Values 1, 2 and 3 are respectively 1.5, 3 and 6Gbps.
.El
Modified: projects/calloutng/share/man/man7/ports.7
==============================================================================
--- projects/calloutng/share/man/man7/ports.7 Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/share/man/man7/ports.7 Mon Mar 4 18:07:28 2013 (r247807)
@@ -490,27 +490,17 @@ single file
.Bl -tag -width ".Pa /usr/ports/Mk/bsd.port.mk" -compact
.It Pa /usr/ports
The default ports directory
-.No ( Fx
-and
-.Ox ) .
-.It Pa /usr/pkgsrc
-The default ports directory
-.Pq Nx .
.It Pa /usr/ports/Mk/bsd.port.mk
The big Kahuna.
.El
.Sh SEE ALSO
.Xr make 1 ,
-.Xr pkg_add 1 ,
-.Xr pkg_create 1 ,
-.Xr pkg_delete 1 ,
-.Xr pkg_info 1 ,
-.Xr pkg_version 1
+.Xr pkg 8 ,
+.Xr portsnap 8
.Pp
The following are part of the ports collection:
.Pp
.Xr portaudit 1 ,
-.Xr portcheckout 1 ,
.Xr portlint 1
.Rs
.%B "The FreeBSD Handbook"
Modified: projects/calloutng/share/mk/bsd.libnames.mk
==============================================================================
--- projects/calloutng/share/mk/bsd.libnames.mk Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/share/mk/bsd.libnames.mk Mon Mar 4 18:07:28 2013 (r247807)
@@ -25,6 +25,7 @@ LIBBIND9?= ${DESTDIR}${LIBDIR}/libbind9.
.endif
LIBBLUETOOTH?= ${DESTDIR}${LIBDIR}/libbluetooth.a
LIBBSDXML?= ${DESTDIR}${LIBDIR}/libbsdxml.a
+LIBBSDYML?= ${DESTDIR}${LIBDIR}/libbsdyml.a
LIBBSM?= ${DESTDIR}${LIBDIR}/libbsm.a
LIBBSNMP?= ${DESTDIR}${LIBDIR}/libbsnmp.a
LIBBZ2?= ${DESTDIR}${LIBDIR}/libbz2.a
Modified: projects/calloutng/sys/arm/arm/busdma_machdep-v6.c
==============================================================================
--- projects/calloutng/sys/arm/arm/busdma_machdep-v6.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/arm/arm/busdma_machdep-v6.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -1007,6 +1007,9 @@ _bus_dmamap_load_buffer(bus_dma_tag_t dm
} else {
sl = &map->slist[map->sync_count - 1];
if (map->sync_count == 0 ||
+#ifdef ARM_L2_PIPT
+ curaddr != sl->busaddr + sl->datacount ||
+#endif
vaddr != sl->vaddr + sl->datacount) {
if (++map->sync_count > dmat->nsegments)
goto cleanup;
Modified: projects/calloutng/sys/compat/linprocfs/linprocfs.c
==============================================================================
--- projects/calloutng/sys/compat/linprocfs/linprocfs.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/compat/linprocfs/linprocfs.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -386,8 +386,7 @@ linprocfs_domtab(PFS_FILL_ARGS)
sbuf_printf(sb, " 0 0\n");
}
mtx_unlock(&mountlist_mtx);
- if (flep != NULL)
- free(flep, M_TEMP);
+ free(flep, M_TEMP);
return (error);
}
@@ -447,8 +446,7 @@ linprocfs_dopartitions(PFS_FILL_ARGS)
}
g_topology_unlock();
- if (flep != NULL)
- free(flep, M_TEMP);
+ free(flep, M_TEMP);
return (error);
}
Modified: projects/calloutng/sys/compat/linux/linux_file.c
==============================================================================
--- projects/calloutng/sys/compat/linux/linux_file.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/compat/linux/linux_file.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -517,8 +517,7 @@ eof:
td->td_retval[0] = nbytes - resid;
out:
- if (cookies)
- free(cookies, M_TEMP);
+ free(cookies, M_TEMP);
VOP_UNLOCK(vp, 0);
foffset_unlock(fp, off, 0);
Modified: projects/calloutng/sys/compat/linux/linux_socket.c
==============================================================================
--- projects/calloutng/sys/compat/linux/linux_socket.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/compat/linux/linux_socket.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -1443,10 +1443,8 @@ out:
bad:
free(iov, M_IOV);
- if (control != NULL)
- m_freem(control);
- if (linux_cmsg != NULL)
- free(linux_cmsg, M_TEMP);
+ m_freem(control);
+ free(linux_cmsg, M_TEMP);
return (error);
}
Modified: projects/calloutng/sys/dev/ath/ath_hal/ah.h
==============================================================================
--- projects/calloutng/sys/dev/ath/ath_hal/ah.h Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/dev/ath/ath_hal/ah.h Mon Mar 4 18:07:28 2013 (r247807)
@@ -1527,11 +1527,13 @@ struct ath_hal {
struct ath_desc *, u_int);
void __ahdecl(*ah_set11nAggrLast)(struct ath_hal *,
struct ath_desc *);
-
void __ahdecl(*ah_clr11nAggr)(struct ath_hal *,
struct ath_desc *);
void __ahdecl(*ah_set11nBurstDuration)(struct ath_hal *,
struct ath_desc *, u_int);
+ void __ahdecl(*ah_set11nVirtMoreFrag)(struct ath_hal *,
+ struct ath_desc *, u_int);
+
HAL_BOOL __ahdecl(*ah_getMibCycleCounts) (struct ath_hal *,
HAL_SURVEY_SAMPLE *);
Modified: projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416.h
==============================================================================
--- projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416.h Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416.h Mon Mar 4 18:07:28 2013 (r247807)
@@ -409,8 +409,9 @@ extern void ar5416Set11nAggrFirst(struct
u_int aggrLen, u_int numDelims);
extern void ar5416Set11nAggrMiddle(struct ath_hal *ah, struct ath_desc *ds, u_int numDelims);
extern void ar5416Set11nAggrLast(struct ath_hal *ah, struct ath_desc *ds);
-
extern void ar5416Clr11nAggr(struct ath_hal *ah, struct ath_desc *ds);
+extern void ar5416Set11nVirtualMoreFrag(struct ath_hal *ah,
+ struct ath_desc *ds, u_int vmf);
extern void ar5416Set11nBurstDuration(struct ath_hal *ah, struct ath_desc *ds, u_int burstDuration);
Modified: projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c
==============================================================================
--- projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_attach.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -194,6 +194,7 @@ ar5416InitState(struct ath_hal_5416 *ahp
ah->ah_set11nMac2040 = ar5416Set11nMac2040;
ah->ah_get11nRxClear = ar5416Get11nRxClear;
ah->ah_set11nRxClear = ar5416Set11nRxClear;
+ ah->ah_set11nVirtMoreFrag = ar5416Set11nVirtualMoreFrag;
/* Interrupt functions */
ah->ah_isInterruptPending = ar5416IsInterruptPending;
Modified: projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c
==============================================================================
--- projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/dev/ath/ath_hal/ar5416/ar5416_xmit.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -825,6 +825,17 @@ ar5416Clr11nAggr(struct ath_hal *ah, str
ads->ds_ctl6 &= ~AR_AggrLen;
}
+void
+ar5416Set11nVirtualMoreFrag(struct ath_hal *ah, struct ath_desc *ds,
+ u_int vmf)
+{
+ struct ar5416_desc *ads = AR5416DESC(ds);
+ if (vmf)
+ ads->ds_ctl0 |= AR_VirtMoreFrag;
+ else
+ ads->ds_ctl0 &= ~AR_VirtMoreFrag;
+}
+
/*
* Program the burst duration, with the included BA delta if it's
* applicable.
Modified: projects/calloutng/sys/dev/ath/if_athvar.h
==============================================================================
--- projects/calloutng/sys/dev/ath/if_athvar.h Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/dev/ath/if_athvar.h Mon Mar 4 18:07:28 2013 (r247807)
@@ -1297,6 +1297,8 @@ void ath_intr(void *);
((*(_ah)->ah_set11nBurstDuration)((_ah), (_ds), (_dur)))
#define ath_hal_clr11n_aggr(_ah, _ds) \
((*(_ah)->ah_clr11nAggr)((_ah), (_ds)))
+#define ath_hal_set11n_virtmorefrag(_ah, _ds, _v) \
+ ((*(_ah)->ah_set11nVirtMoreFrag)((_ah), (_ds), (_v)))
#define ath_hal_gpioCfgOutput(_ah, _gpio, _type) \
((*(_ah)->ah_gpioCfgOutput)((_ah), (_gpio), (_type)))
Modified: projects/calloutng/sys/kern/kern_condvar.c
==============================================================================
--- projects/calloutng/sys/kern/kern_condvar.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/kern/kern_condvar.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -270,8 +270,9 @@ _cv_wait_sig(struct cv *cvp, struct lock
}
/*
- * Wait on a condition variable. Returns 0 if the process was resumed by
- * cv_signal or cv_broadcast, EWOULDBLOCK if the timeout expires.
+ * Wait on a condition variable for (at most) the value specified in sbt
+ * argument. Returns 0 if the process was resumed by cv_signal or cv_broadcast,
+ * EWOULDBLOCK if the timeout expires.
*/
int
_cv_timedwait_sbt(struct cv *cvp, struct lock_object *lock, sbintime_t sbt,
@@ -336,10 +337,11 @@ _cv_timedwait_sbt(struct cv *cvp, struct
}
/*
- * Wait on a condition variable allowing interruption by signals.
+ * Wait on a condition variable for (at most) the value specified in sbt
+ * argument, allowing interruption by signals.
* Returns 0 if the thread was resumed by cv_signal or cv_broadcast,
- * or cv_broadcast, EWOULDBLOCK if the timeout expires, and EINTR
- * or ERESTART if a signal was caught.
+ * EWOULDBLOCK if the timeout expires, and EINTR or ERESTART if a signal
+ * was caught.
*/
int
_cv_timedwait_sig_sbt(struct cv *cvp, struct lock_object *lock,
Modified: projects/calloutng/sys/kern/kern_descrip.c
==============================================================================
--- projects/calloutng/sys/kern/kern_descrip.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/kern/kern_descrip.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -104,6 +104,7 @@ static MALLOC_DEFINE(M_FILEDESC, "filede
static MALLOC_DEFINE(M_FILEDESC_TO_LEADER, "filedesc_to_leader",
"file desc to leader structures");
static MALLOC_DEFINE(M_SIGIO, "sigio", "sigio structures");
+MALLOC_DEFINE(M_FILECAPS, "filecaps", "descriptor capabilities");
MALLOC_DECLARE(M_FADVISE);
@@ -1389,7 +1390,7 @@ filecaps_copy(const struct filecaps *src
("fc_ioctls != NULL, but fc_nioctls=%hd", src->fc_nioctls));
size = sizeof(src->fc_ioctls[0]) * src->fc_nioctls;
- dst->fc_ioctls = malloc(size, M_TEMP, M_WAITOK);
+ dst->fc_ioctls = malloc(size, M_FILECAPS, M_WAITOK);
bcopy(src->fc_ioctls, dst->fc_ioctls, size);
}
}
@@ -1397,7 +1398,7 @@ filecaps_copy(const struct filecaps *src
/*
* Move filecaps structure to the new place and clear the old place.
*/
-static void
+void
filecaps_move(struct filecaps *src, struct filecaps *dst)
{
@@ -1425,7 +1426,7 @@ void
filecaps_free(struct filecaps *fcaps)
{
- free(fcaps->fc_ioctls, M_TEMP);
+ free(fcaps->fc_ioctls, M_FILECAPS);
bzero(fcaps, sizeof(*fcaps));
}
Modified: projects/calloutng/sys/kern/kern_event.c
==============================================================================
--- projects/calloutng/sys/kern/kern_event.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/kern/kern_event.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -517,7 +517,7 @@ knote_fork(struct knlist *list, int pid)
* XXX: EVFILT_TIMER should perhaps live in kern_time.c beside the
* interval timer support code.
*/
-static __inline sbintime_t
+static __inline sbintime_t
timer2sbintime(intptr_t data)
{
@@ -1309,10 +1309,9 @@ kqueue_scan(struct kqueue *kq, int maxev
const struct timespec *tsp, struct kevent *keva, struct thread *td)
{
struct kevent *kevp;
- sbintime_t asbt, rsbt;
struct knote *kn, *marker;
- int count, nkev, error, influx;
- int haskqglobal, touch;
+ sbintime_t asbt, rsbt;
+ int count, error, haskqglobal, influx, nkev, touch;
count = maxevents;
nkev = 0;
Modified: projects/calloutng/sys/kern/kern_resource.c
==============================================================================
--- projects/calloutng/sys/kern/kern_resource.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/kern/kern_resource.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -1140,7 +1140,7 @@ lim_fork(struct proc *p1, struct proc *p
callout_init_mtx(&p2->p_limco, &p2->p_mtx, 0);
if (p1->p_cpulimit != RLIM_INFINITY)
callout_reset_sbt(&p2->p_limco, SBT_1S, 0,
- lim_cb, p2, C_PREL(1) | C_HARDCLOCK);
+ lim_cb, p2, C_PREL(1));
}
void
Modified: projects/calloutng/sys/kern/kern_synch.c
==============================================================================
--- projects/calloutng/sys/kern/kern_synch.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/kern/kern_synch.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -151,7 +151,7 @@ _sleep(void *ident, struct lock_object *
struct thread *td;
struct proc *p;
struct lock_class *class;
- int catch, sleepq_flags, lock_state, pri, rval;
+ int catch, lock_state, pri, rval, sleepq_flags;
WITNESS_SAVE_DECL(lock_witness);
td = curthread;
Modified: projects/calloutng/sys/kern/kern_timeout.c
==============================================================================
--- projects/calloutng/sys/kern/kern_timeout.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/kern/kern_timeout.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -601,7 +601,7 @@ softclock_call_cc(struct callout *c, str
sbintime_t new_time;
#endif
#if defined(DIAGNOSTIC) || defined(CALLOUT_PROFILING)
- sbintime_t bt1, bt2;
+ sbintime_t sbt1, sbt2;
struct timespec ts2;
static sbintime_t maxdt = 2 * SBT_1MS; /* 2 msec */
static timeout_t *lastfunc;
@@ -655,7 +655,7 @@ softclock_call_cc(struct callout *c, str
CTR3(KTR_CALLOUT, "callout %p func %p arg %p",
c, c_func, c_arg);
}
-#ifdef DIAGNOSTIC
+#if defined(DIAGNOSTIC) || defined(CALLOUT_PROFILING)
sbt1 = sbinuptime();
#endif
THREAD_NO_SLEEPING();
@@ -663,17 +663,17 @@ softclock_call_cc(struct callout *c, str
c_func(c_arg);
SDT_PROBE(callout_execute, kernel, , callout_end, c, 0, 0, 0, 0);
THREAD_SLEEPING_OK();
-#ifdef DIAGNOSTIC
- bt2 = sbinuptime();
- bt2 -= bt1;
- if (bt2 > maxdt) {
- if (lastfunc != c_func || bt2 > maxdt * 2) {
- ts2 = sbttots(bt2);
+#if defined(DIAGNOSTIC) || defined(CALLOUT_PROFILING)
+ sbt2 = sbinuptime();
+ sbt2 -= sbt1;
+ if (sbt2 > maxdt) {
+ if (lastfunc != c_func || sbt2 > maxdt * 2) {
+ ts2 = sbttots(sbt2);
printf(
"Expensive timeout(9) function: %p(%p) %jd.%09ld s\n",
c_func, c_arg, (intmax_t)ts2.tv_sec, ts2.tv_nsec);
}
- maxdt = bt2;
+ maxdt = sbt2;
lastfunc = c_func;
}
#endif
Modified: projects/calloutng/sys/kern/subr_log.c
==============================================================================
--- projects/calloutng/sys/kern/subr_log.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/kern/subr_log.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -118,7 +118,7 @@ logopen(struct cdev *dev, int flags, int
}
log_open = 1;
callout_reset_sbt(&logsoftc.sc_callout,
- (SBT_1S / log_wakeups_per_second), 0, logtimeout, NULL, C_PREL(1));
+ SBT_1S / log_wakeups_per_second, 0, logtimeout, NULL, C_PREL(1));
mtx_unlock(&msgbuf_lock);
fsetown(td->td_proc->p_pid, &logsoftc.sc_sigio); /* signal process only */
@@ -247,7 +247,7 @@ done:
log_wakeups_per_second = 1;
}
callout_reset_sbt(&logsoftc.sc_callout,
- (SBT_1S / log_wakeups_per_second), 0, logtimeout, NULL, C_PREL(1));
+ SBT_1S / log_wakeups_per_second, 0, logtimeout, NULL, C_PREL(1));
}
/*ARGSUSED*/
Modified: projects/calloutng/sys/kern/sys_generic.c
==============================================================================
--- projects/calloutng/sys/kern/sys_generic.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/kern/sys_generic.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -950,10 +950,10 @@ kern_select(struct thread *td, int nd, f
*/
fd_mask s_selbits[howmany(2048, NFDBITS)];
fd_mask *ibits[3], *obits[3], *selbits, *sbp;
- sbintime_t asbt, precision, rsbt;
struct timeval rtv;
- int error, lf, ndu;
+ sbintime_t asbt, precision, rsbt;
u_int nbufbytes, ncpbytes, ncpubytes, nfdbits;
+ int error, lf, ndu;
if (nd < 0)
return (EINVAL);
@@ -1274,8 +1274,8 @@ sys_poll(td, uap)
struct pollfd *bits;
struct pollfd smallbits[32];
sbintime_t asbt, precision, rsbt;
- int error;
u_int nfds;
+ int error;
size_t ni;
nfds = uap->nfds;
Modified: projects/calloutng/sys/kern/uipc_usrreq.c
==============================================================================
--- projects/calloutng/sys/kern/uipc_usrreq.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/kern/uipc_usrreq.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -102,6 +102,8 @@ __FBSDID("$FreeBSD$");
#include <vm/uma.h>
+MALLOC_DECLARE(M_FILECAPS);
+
/*
* Locking key:
* (l) Locked using list lock
@@ -282,7 +284,7 @@ static void unp_drop(struct unpcb *, int
static void unp_gc(__unused void *, int);
static void unp_scan(struct mbuf *, void (*)(struct file *));
static void unp_discard(struct file *);
-static void unp_freerights(struct filedescent *, int);
+static void unp_freerights(struct filedescent **, int);
static void unp_init(void);
static int unp_internalize(struct mbuf **, struct thread *);
static void unp_internalize_fp(struct file *);
@@ -1679,16 +1681,17 @@ unp_drop(struct unpcb *unp, int errno)
}
static void
-unp_freerights(struct filedescent *fde, int fdcount)
+unp_freerights(struct filedescent **fdep, int fdcount)
{
struct file *fp;
int i;
- for (i = 0; i < fdcount; i++, fde++) {
- fp = fde->fde_file;
- bzero(fde, sizeof(*fde));
+ for (i = 0; i < fdcount; i++) {
+ fp = fdep[i]->fde_file;
+ filecaps_free(&fdep[i]->fde_caps);
unp_discard(fp);
}
+ free(fdep[0], M_FILECAPS);
}
static int
@@ -1699,7 +1702,7 @@ unp_externalize(struct mbuf *control, st
int i;
int *fdp;
struct filedesc *fdesc = td->td_proc->p_fd;
- struct filedescent *fde, *fdep;
+ struct filedescent *fde, **fdep;
void *data;
socklen_t clen = control->m_len, datalen;
int error, newfds;
@@ -1755,16 +1758,18 @@ unp_externalize(struct mbuf *control, st
fdp = (int *)
CMSG_DATA(mtod(*controlp, struct cmsghdr *));
- for (i = 0; i < newfds; i++, fdep++, fdp++) {
+ for (i = 0; i < newfds; i++, fdp++) {
if (fdalloc(td, 0, &f))
panic("unp_externalize fdalloc failed");
fde = &fdesc->fd_ofiles[f];
- fde->fde_file = fdep->fde_file;
- filecaps_copy(&fdep->fde_caps, &fde->fde_caps);
+ fde->fde_file = fdep[0]->fde_file;
+ filecaps_move(&fdep[0]->fde_caps,
+ &fde->fde_caps);
unp_externalize_fp(fde->fde_file);
*fdp = f;
}
FILEDESC_XUNLOCK(fdesc);
+ free(fdep[0], M_FILECAPS);
} else {
/* We can just copy anything else across. */
if (error || controlp == NULL)
@@ -1839,7 +1844,7 @@ unp_internalize(struct mbuf **controlp,
struct bintime *bt;
struct cmsghdr *cm = mtod(control, struct cmsghdr *);
struct cmsgcred *cmcred;
- struct filedescent *fde, *fdep;
+ struct filedescent *fde, **fdep, *fdev;
struct file *fp;
struct timeval *tv;
int i, fd, *fdp;
@@ -1913,7 +1918,7 @@ unp_internalize(struct mbuf **controlp,
* Now replace the integer FDs with pointers to the
* file structure and capability rights.
*/
- newlen = oldfds * sizeof(*fdep);
+ newlen = oldfds * sizeof(fdep[0]);
*controlp = sbcreatecontrol(NULL, newlen,
SCM_RIGHTS, SOL_SOCKET);
if (*controlp == NULL) {
@@ -1922,13 +1927,17 @@ unp_internalize(struct mbuf **controlp,
goto out;
}
fdp = data;
- fdep = (struct filedescent *)
+ fdep = (struct filedescent **)
CMSG_DATA(mtod(*controlp, struct cmsghdr *));
- for (i = 0; i < oldfds; i++, fdep++, fdp++) {
+ fdev = malloc(sizeof(*fdev) * oldfds, M_FILECAPS,
+ M_WAITOK);
+ for (i = 0; i < oldfds; i++, fdev++, fdp++) {
fde = &fdesc->fd_ofiles[*fdp];
- fdep->fde_file = fde->fde_file;
- filecaps_copy(&fde->fde_caps, &fdep->fde_caps);
- unp_internalize_fp(fdep->fde_file);
+ fdep[i] = fdev;
+ fdep[i]->fde_file = fde->fde_file;
+ filecaps_copy(&fde->fde_caps,
+ &fdep[i]->fde_caps);
+ unp_internalize_fp(fdep[i]->fde_file);
}
FILEDESC_SUNLOCK(fdesc);
break;
@@ -2290,7 +2299,7 @@ static void
unp_scan(struct mbuf *m0, void (*op)(struct file *))
{
struct mbuf *m;
- struct filedescent *fdep;
+ struct filedescent **fdep;
struct cmsghdr *cm;
void *data;
int i;
@@ -2317,8 +2326,8 @@ unp_scan(struct mbuf *m0, void (*op)(str
cm->cmsg_type == SCM_RIGHTS) {
qfds = datalen / sizeof(*fdep);
fdep = data;
- for (i = 0; i < qfds; i++, fdep++)
- (*op)(fdep->fde_file);
+ for (i = 0; i < qfds; i++)
+ (*op)(fdep[i]->fde_file);
}
if (CMSG_SPACE(datalen) < clen) {
Modified: projects/calloutng/sys/modules/mqueue/Makefile
==============================================================================
--- projects/calloutng/sys/modules/mqueue/Makefile Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/modules/mqueue/Makefile Mon Mar 4 18:07:28 2013 (r247807)
@@ -5,6 +5,6 @@
KMOD= mqueuefs
SRCS= uipc_mqueue.c \
vnode_if.h \
- opt_posix.h opt_compat.h
+ opt_posix.h opt_compat.h opt_capsicum.h
.include <bsd.kmod.mk>
Modified: projects/calloutng/sys/sys/filedesc.h
==============================================================================
--- projects/calloutng/sys/sys/filedesc.h Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/sys/filedesc.h Mon Mar 4 18:07:28 2013 (r247807)
@@ -136,6 +136,7 @@ struct thread;
void filecaps_init(struct filecaps *fcaps);
void filecaps_copy(const struct filecaps *src, struct filecaps *dst);
+void filecaps_move(struct filecaps *src, struct filecaps *dst);
void filecaps_free(struct filecaps *fcaps);
int closef(struct file *fp, struct thread *td);
Modified: projects/calloutng/sys/vm/vm_object.c
==============================================================================
--- projects/calloutng/sys/vm/vm_object.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/sys/vm/vm_object.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -165,8 +165,9 @@ vm_object_zdtor(void *mem, int size, voi
object = (vm_object_t)mem;
KASSERT(TAILQ_EMPTY(&object->memq),
- ("object %p has resident pages",
- object));
+ ("object %p has resident pages in its memq", object));
+ KASSERT(object->root == NULL,
+ ("object %p has resident pages in its tree", object));
#if VM_NRESERVLEVEL > 0
KASSERT(LIST_EMPTY(&object->rvq),
("object %p has reservations",
@@ -197,9 +198,11 @@ vm_object_zinit(void *mem, int size, int
mtx_init(&object->mtx, "vm object", NULL, MTX_DEF | MTX_DUPOK);
/* These are true for any object that has been freed */
+ object->root = NULL;
object->paging_in_progress = 0;
object->resident_page_count = 0;
object->shadow_count = 0;
+ object->cache = NULL;
return (0);
}
@@ -210,7 +213,6 @@ _vm_object_allocate(objtype_t type, vm_p
TAILQ_INIT(&object->memq);
LIST_INIT(&object->shadow_head);
- object->root = NULL;
object->type = type;
switch (type) {
case OBJT_DEAD:
@@ -247,7 +249,6 @@ _vm_object_allocate(objtype_t type, vm_p
#if VM_NRESERVLEVEL > 0
LIST_INIT(&object->rvq);
#endif
- object->cache = NULL;
mtx_lock(&vm_object_list_mtx);
TAILQ_INSERT_TAIL(&vm_object_list, object, object_list);
Modified: projects/calloutng/tools/make_libdeps.sh
==============================================================================
--- projects/calloutng/tools/make_libdeps.sh Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/tools/make_libdeps.sh Mon Mar 4 18:07:28 2013 (r247807)
@@ -47,6 +47,7 @@ sed -E
-e's; ;! ;g'
-e's;$;!;'
-e's;-lbsdxml!;lib/libexpat;g'
+ -e's;-lbsdyml!;lib/libyaml;g'
-e's;-lpthread!;lib/libthr;g'
-e's;-lm!;lib/msun;g'
-e's;-l(ncurses|termcap)!;lib/ncurses/ncurses;g'
Copied: projects/calloutng/tools/regression/bin/sh/builtins/trap12.0 (from r247806, head/tools/regression/bin/sh/builtins/trap12.0)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ projects/calloutng/tools/regression/bin/sh/builtins/trap12.0 Mon Mar 4 18:07:28 2013 (r247807, copy of r247806, head/tools/regression/bin/sh/builtins/trap12.0)
@@ -0,0 +1,10 @@
+# $FreeBSD$
+
+f() {
+ trap 'return 42' USR1
+ kill -USR1 $$
+ return 3
+}
+f
+r=$?
+[ "$r" = 42 ]
Modified: projects/calloutng/usr.bin/calendar/calendars/calendar.birthday
==============================================================================
--- projects/calloutng/usr.bin/calendar/calendars/calendar.birthday Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/usr.bin/calendar/calendars/calendar.birthday Mon Mar 4 18:07:28 2013 (r247807)
@@ -6,6 +6,7 @@
#ifndef _calendar_birthday_
#define _calendar_birthday_
+#undef unix
01/01 J.D. Salinger born, 1919
01/01 Paul Revere born in Boston, 1735
Modified: projects/calloutng/usr.bin/find/extern.h
==============================================================================
--- projects/calloutng/usr.bin/find/extern.h Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/usr.bin/find/extern.h Mon Mar 4 18:07:28 2013 (r247807)
@@ -73,6 +73,7 @@ creat_f c_regex;
creat_f c_samefile;
creat_f c_simple;
creat_f c_size;
+creat_f c_sparse;
creat_f c_type;
creat_f c_user;
creat_f c_xdev;
@@ -109,6 +110,7 @@ exec_f f_prune;
exec_f f_quit;
exec_f f_regex;
exec_f f_size;
+exec_f f_sparse;
exec_f f_type;
exec_f f_user;
Modified: projects/calloutng/usr.bin/find/find.1
==============================================================================
--- projects/calloutng/usr.bin/find/find.1 Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/usr.bin/find/find.1 Mon Mar 4 18:07:28 2013 (r247807)
@@ -816,6 +816,10 @@ terabytes (1024 gigabytes)
.It Cm P
petabytes (1024 terabytes)
.El
+.It Ic -sparse
+True if the current file is sparse,
+i.e. has fewer blocks allocated than expected based on its size in bytes.
+This might also match files that have been compressed by the filesystem.
.It Ic -type Ar t
True if the file is of the specified type.
Possible file types are as follows:
@@ -997,7 +1001,7 @@ and
as well as
.Ic -amin , -anewer , -cmin , -cnewer , -delete , -empty , -fstype ,
.Ic -iname , -inum , -iregex , -ls , -maxdepth , -mindepth , -mmin ,
-.Ic -path , -print0 , -regex
+.Ic -path , -print0 , -regex, -sparse
and all of the
.Ic -B*
birthtime related primaries are extensions to
Modified: projects/calloutng/usr.bin/find/function.c
==============================================================================
--- projects/calloutng/usr.bin/find/function.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/usr.bin/find/function.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -1497,6 +1497,29 @@ c_size(OPTION *option, char ***argvp)
}
/*
+ * -sparse functions --
+ *
+ * Check if a file is sparse by finding if it occupies fewer blocks
+ * than we expect based on its size.
+ */
+int
+f_sparse(PLAN *plan __unused, FTSENT *entry)
+{
+ off_t expected_blocks;
+
+ expected_blocks = (entry->fts_statp->st_size + 511) / 512;
+ return entry->fts_statp->st_blocks < expected_blocks;
+}
+
+PLAN *
+c_sparse(OPTION *option, char ***argvp __unused)
+{
+ ftsoptions &= ~FTS_NOSTAT;
+
+ return palloc(option);
+}
+
+/*
* -type c functions --
*
* True if the type of the file is c, where c is b, c, d, p, f or w
Modified: projects/calloutng/usr.bin/find/option.c
==============================================================================
--- projects/calloutng/usr.bin/find/option.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/usr.bin/find/option.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -145,6 +145,7 @@ static OPTION const options[] = {
{ "-regex", c_regex, f_regex, 0 },
{ "-samefile", c_samefile, f_inum, 0 },
{ "-size", c_size, f_size, 0 },
+ { "-sparse", c_sparse, f_sparse, 0 },
{ "-true", c_simple, f_always_true, 0 },
{ "-type", c_type, f_type, 0 },
{ "-uid", c_user, f_user, 0 },
Modified: projects/calloutng/usr.bin/hexdump/conv.c
==============================================================================
--- projects/calloutng/usr.bin/hexdump/conv.c Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/usr.bin/hexdump/conv.c Mon Mar 4 18:07:28 2013 (r247807)
@@ -151,7 +151,7 @@ conv_u(PR *pr, u_char *p)
static char const * list[] = {
"nul", "soh", "stx", "etx", "eot", "enq", "ack", "bel",
"bs", "ht", "lf", "vt", "ff", "cr", "so", "si",
- "dle", "dcl", "dc2", "dc3", "dc4", "nak", "syn", "etb",
+ "dle", "dc1", "dc2", "dc3", "dc4", "nak", "syn", "etb",
"can", "em", "sub", "esc", "fs", "gs", "rs", "us",
};
Modified: projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh
==============================================================================
--- projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-bsdlabel.sh Mon Mar 4 18:07:28 2013 (r247807)
@@ -62,7 +62,18 @@ get_fs_line_xvars()
echo $ZFSVARS | grep -qE "^(disk|file|mirror|raidz(1|2|3)?|spare|log|cache):" 2>/dev/null
if [ $? -eq 0 ] ; then
ZTYPE=`echo $ZFSVARS | cut -f1 -d:`
- ZFSVARS=`echo $ZFSVARS | sed "s|$ZTYPE: ||g" | sed "s|$ZTYPE:||g"`
+ tmpVars=`echo $ZFSVARS | sed "s|$ZTYPE: ||g" | sed "s|$ZTYPE:||g"`
+ ZFSVARS=""
+ # make sure we have a '/dev' in front of the extra devices
+ for i in $tmpVars
+ do
+ echo $i | grep -q '/dev/'
+ if [ $? -ne 0 ] ; then
+ ZFSVARS="$ZFSVARS /dev/${i}"
+ else
+ ZFSVARS="$ZFSVARS $i"
+ fi
+ done
fi
# Return the ZFS options
Modified: projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-disk.sh
==============================================================================
--- projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-disk.sh Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-disk.sh Mon Mar 4 18:07:28 2013 (r247807)
@@ -33,6 +33,7 @@ is_disk()
for _dsk in `sysctl -n kern.disks`
do
[ "$_dsk" = "${1}" ] && return 0
+ [ "/dev/$_dsk" = "${1}" ] && return 0
done
return 1
Modified: projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-installpackages.sh
==============================================================================
--- projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-installpackages.sh Mon Mar 4 17:39:17 2013 (r247806)
+++ projects/calloutng/usr.sbin/pc-sysinstall/backend/functions-installpackages.sh Mon Mar 4 18:07:28 2013 (r247807)
@@ -76,50 +76,113 @@ fetch_package_dependencies()
# Check for any packages specified, and begin loading them
install_packages()
{
+ echo "Checking for packages to install..."
+ sleep 2
+
# First, lets check and see if we even have any packages to install
get_value_from_cfg installPackages
- if [ -n "${VAL}" ]
- then
- HERE=`pwd`
- rc_nohalt "mkdir -p ${FSMNT}/${PKGTMPDIR}"
- rc_nohalt "cd ${FSMNT}/${PKGTMPDIR}"
- if [ ! -f "${CONFDIR}/INDEX" ]
+ # Nothing to do?
+ if [ -z "${VAL}" ]; then return; fi
+
+ echo "Installing packages..."
+ sleep 3
+
+ local PKGPTH
+
+ HERE=`pwd`
+ rc_halt "mkdir -p ${FSMNT}${PKGTMPDIR}"
+
+ # Determine the directory we will install packages from
+ get_package_location
+ rc_halt "cd ${PKGDLDIR}"
+
+ # Set the location of the INDEXFILE
+ INDEXFILE="${TMPDIR}/INDEX"
+
+ if [ ! -f "${INDEXFILE}" ]; then
+ get_package_index
+ fi
+
+ if [ ! -f "${TMPDIR}/INDEX.parsed" -a "$INSTALLMEDIUM" = "ftp" ]; then
+ parse_package_index
+ fi
+
+ # What extension are we using for pkgs?
+ PKGEXT="txz"
+ get_value_from_cfg pkgExt
+ if [ -n "${VAL}" ]; then
+ strip_white_space ${VAL}
+ PKGEXT="$VAL"
+ fi
+ export PKGEXT
+
+ # We dont want to be bothered with scripts asking questions
+ PACKAGE_BUILDING=yes
*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
More information about the svn-src-projects
mailing list