diff options
author | Kristoffer Ericson <kristoffer_e1@hotmail.com> | 2007-04-05 23:04:16 +0000 |
---|---|---|
committer | Kristoffer Ericson <kristoffer_e1@hotmail.com> | 2007-04-05 23:04:16 +0000 |
commit | 9131c73cc59e440296f7ea875835fae4b4c359bf (patch) | |
tree | 766881a1d0609a01fc2db80f8be26e78211efab6 /packages | |
parent | 1387d0a7c4c00774283a78bd798379616e307abb (diff) | |
parent | 4276eaaa0a342118dfa85731a772c084d9e8fa56 (diff) |
merge of '6da9d621bc47b3a3cb21e8d3a666f30c5cec58e1'
and 'dc66d28f2407d4b483ec5e09566d9787024f3b80'
Diffstat (limited to 'packages')
42 files changed, 1175 insertions, 591 deletions
diff --git a/packages/sysvinit/sysvinit/htcuniversal/.mtn2git_empty b/packages/gsm/files/htcuniversal/.mtn2git_empty index e69de29bb2..e69de29bb2 100644 --- a/packages/sysvinit/sysvinit/htcuniversal/.mtn2git_empty +++ b/packages/gsm/files/htcuniversal/.mtn2git_empty diff --git a/packages/gsm/files/htcuniversal/default b/packages/gsm/files/htcuniversal/default new file mode 100644 index 0000000000..3c9a8da949 --- /dev/null +++ b/packages/gsm/files/htcuniversal/default @@ -0,0 +1,10 @@ +# gsmd This shell script configures for the gsmd init script. + +GSMD_OPTS="-s 115200 -F" + +# If your GSM device needs to be powered up, uncomment and modify the next line +#GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on" + +# this should be in a common /etc/default/serial, together +# with BT_DEV, and IR_DEV +GSM_DEV="/dev/ttyS0" diff --git a/packages/gsm/files/interpreter-ready.patch b/packages/gsm/files/interpreter-ready.patch deleted file mode 100644 index cc6b9c6e2b..0000000000 --- a/packages/gsm/files/interpreter-ready.patch +++ /dev/null @@ -1,47 +0,0 @@ -Index: gsm/include/gsmd/gsmd.h -=================================================================== ---- gsm.orig/include/gsmd/gsmd.h 2007-03-29 17:07:10.000000000 +0200 -+++ gsm/include/gsmd/gsmd.h 2007-03-29 17:07:43.000000000 +0200 -@@ -58,6 +58,7 @@ - - struct gsmd { - unsigned int flags; -+ int interpreter_ready; - struct gsmd_fd gfd_uart; - struct gsmd_fd gfd_sock; - struct llparser llp; -Index: gsm/src/gsmd/atcmd.c -=================================================================== ---- gsm.orig/src/gsmd/atcmd.c 2007-03-29 17:06:01.000000000 +0200 -+++ gsm/src/gsmd/atcmd.c 2007-03-29 17:08:27.000000000 +0200 -@@ -183,6 +183,7 @@ - * an empty string or that 'ready' string, we need to init the modem */ - if (strlen(buf) == 0 || - !strcmp(buf, "AT-Command Interpreter ready")) { -+ g->interpreter_ready = 1; - gsmd_initsettings(g); - return 0; - } -@@ -372,7 +373,7 @@ - } - - /* write pending commands to UART */ -- if (what & GSMD_FD_WRITE) { -+ if ((what & GSMD_FD_WRITE) && g->interpreter_ready) { - struct gsmd_atcmd *pos, *pos2; - llist_for_each_entry_safe(pos, pos2, &g->pending_atcmds, list) { - len = strlen(pos->buf); -Index: gsm/src/gsmd/gsmd.c -=================================================================== ---- gsm.orig/src/gsmd/gsmd.c 2007-03-29 17:06:04.000000000 +0200 -+++ gsm/src/gsmd/gsmd.c 2007-03-29 17:08:59.000000000 +0200 -@@ -291,7 +291,8 @@ - - gsmd_vendor_plugin_find(&g); - -- gsmd_initsettings(&g); -+ if (g.interpreter_ready) -+ gsmd_initsettings(&g); - - gsmd_opname_init(&g); - diff --git a/packages/gsm/files/magician/default b/packages/gsm/files/magician/default index a9c3b94b1d..523d0b9479 100644 --- a/packages/gsm/files/magician/default +++ b/packages/gsm/files/magician/default @@ -1,9 +1,10 @@ # gsmd This shell script configures for the gsmd init script. -# Set line Discipline 17 (N_TIHTC), needs ldisc.patch-ed gsmd -GSMD_OPTS="-s 115200 -F -D 17" +GSMD_OPTS="-s 115200 -F" # If your GSM device needs to be powered up, uncomment and modify the next line #GSM_POW="/sys/bus/platform/devices/gta01-pm-gsm.0/power_on" +# this should be in a common /etc/default/serial, together +# with BT_DEV, and IR_DEV GSM_DEV="/dev/ttyS1" diff --git a/packages/gsm/files/magician/ldisc.patch b/packages/gsm/files/magician/ldisc.patch deleted file mode 100644 index 30d4a8812a..0000000000 --- a/packages/gsm/files/magician/ldisc.patch +++ /dev/null @@ -1,66 +0,0 @@ -Index: gsm/src/gsmd/gsmd.c -=================================================================== ---- gsm.orig/src/gsmd/gsmd.c 2007-03-29 15:29:31.000000000 +0200 -+++ gsm/src/gsmd/gsmd.c 2007-03-29 15:33:07.000000000 +0200 -@@ -32,6 +32,7 @@ - #define _GNU_SOURCE - #include <getopt.h> - -+#include <sys/ioctl.h> - #include <sys/types.h> - #include <sys/stat.h> - -@@ -150,6 +151,7 @@ - { "speed", 1, NULL, 's' }, - { "logfile", 1, NULL, 'l' }, - { "hwflow", 0, NULL, 'F' }, -+ { "ldisc", 1, NULL, 'D' }, - { "leak-report", 0, NULL, 'L' }, - { 0, 0, 0, 0 } - }; -@@ -165,6 +167,7 @@ - "\t-p dev\t--device dev\tSpecify serial device to be used\n" - "\t-s spd\t--speed spd\tSpecify speed in bps (9600,38400,115200,...)\n" - "\t-F\t--hwflow\tHardware Flow Control (RTS/CTS)\n" -+ "\t-D\t--ldisc num\tSet line discipline (0=N_TTY,...)\n" - "\t-L\t--leak-report\tLeak Report of talloc memory allocator\n" - "\t-l file\t--logfile file\tSpecify a logfile to log to\n" - ); -@@ -191,6 +194,7 @@ - int daemonize = 0; - int bps = 115200; - int hwflow = 0; -+ int ldisc = 0; - char *device = "/dev/ttyUSB0"; - char *logfile = "syslog"; - -@@ -202,7 +206,7 @@ - gsmd_tallocs = talloc_named_const(NULL, 1, "GSMD"); - - /*FIXME: parse commandline, set daemonize, device, ... */ -- while ((argch = getopt_long(argc, argv, "FVLdhp:s:l:", opts, NULL)) != -1) { -+ while ((argch = getopt_long(argc, argv, "FVLdhp:s:l:D:", opts, NULL)) != -1) { - switch (argch) { - case 'V': - /* FIXME */ -@@ -232,6 +236,8 @@ - fprintf(stderr, "can't open logfile `%s'\n", optarg); - exit(2); - } -+ case 'D': -+ ldisc = atoi(optarg); - break; - } - } -@@ -249,6 +255,11 @@ - exit(1); - } - -+ if (ldisc && ioctl(fd, TIOCSETD, &ldisc) < 0) { -+ fprintf(stderr, "can't set line discipline\n"); -+ exit(1); -+ } -+ - if (gsmd_initialize(&g) < 0) { - fprintf(stderr, "internal error\n"); - exit(1); diff --git a/packages/gsm/files/magician/vendor-tihtc.patch b/packages/gsm/files/magician/vendor-tihtc.patch deleted file mode 100644 index a2f22ffbea..0000000000 --- a/packages/gsm/files/magician/vendor-tihtc.patch +++ /dev/null @@ -1,325 +0,0 @@ -Index: gsm/src/gsmd/vendor_tihtc.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ gsm/src/gsmd/vendor_tihtc.c 2007-03-27 13:12:05.000000000 +0200 -@@ -0,0 +1,294 @@ -+/* TI [Calypso] with HTC firmware gsmd plugin -+ * -+ * Written by Philipp Zabel <philipp.zabel@gmail.com> -+ * based on vendor_ti.c -+ * -+ * This program is free software; you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation; either version 2 of the License, or -+ * (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License along -+ * with this program; if not, write to the Free Software Foundation, Inc., -+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. -+ * -+ */ -+ -+#include <stdlib.h> -+#include <unistd.h> -+#include <string.h> -+#include <stdio.h> -+#include <errno.h> -+ -+#include "gsmd.h" -+ -+#include <gsmd/gsmd.h> -+#include <gsmd/usock.h> -+#include <gsmd/event.h> -+#include <gsmd/talloc.h> -+#include <gsmd/extrsp.h> -+#include <gsmd/atcmd.h> -+#include <gsmd/vendorplugin.h> -+#include <gsmd/unsolicited.h> -+ -+#if 0 -+#include "vendorplugin.h" -+ -+static int -+ti_getopt(struct gsmd *gh, int optname, void *optval, int *optlen) -+{ -+ switch (optname) { -+ case GSMD_OPT_CIPHER_IND: -+ /* FIXME: send AT%CPRI=? */ -+ break; -+ default: -+ return -EINVAL; -+ } -+} -+ -+static int -+ti_setopt(struct gsmd *gh, int optname, const void *optval, int optlen) -+{ -+ switch (optname) { -+ case GSMD_OPT_CIPHER_IND: -+ /* FIXME: send AT%CPRI= */ -+ break; -+ default: -+ return -EINVAL; -+ } -+} -+ -+#endif -+ -+ -+static int htccsq_parse(char *buf, int len, const char *param, -+ struct gsmd *gsmd) -+{ -+ char *tok; -+ struct gsmd_evt_auxdata *aux; -+ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, GSMD_EVT_SIGNAL, -+ sizeof(*aux)); -+ -+ DEBUGP("entering htccsq_parse param=`%s'\n", param); -+ if (!ucmd) -+ return -EINVAL; -+ -+ -+ aux = (struct gsmd_evt_auxdata *) ucmd->buf; -+ -+ /* FIXME: contains values 1-5, should be mapped to 0-31 somehow? */ -+ /* 2 --> 11 */ -+ aux->u.signal.sigq.rssi = atoi(buf); -+ aux->u.signal.sigq.ber = 99; -+ -+ DEBUGP("sending EVT_SIGNAL\n"); -+ usock_evt_send(gsmd, ucmd, GSMD_EVT_SIGNAL); -+ -+ return 0; -+ -+out_free_io: -+ free(ucmd); -+ return -EIO; -+} -+ -+static int cpri_parse(char *buf, int len, const char *param, struct gsmd *gsmd) -+{ -+ char *tok1, *tok2; -+ -+ tok1 = strtok(buf, ","); -+ if (!tok1) -+ return -EIO; -+ -+ tok2 = strtok(NULL, ","); -+ if (!tok2) { -+ switch (atoi(tok1)) { -+ case 0: -+ gsmd->dev_state.ciph_ind.flags &= ~GSMD_CIPHIND_ACTIVE; -+ break; -+ case 1: -+ gsmd->dev_state.ciph_ind.flags |= GSMD_CIPHIND_ACTIVE; -+ break; -+ case 2: -+ gsmd->dev_state.ciph_ind.flags |= GSMD_CIPHIND_DISABLED_SIM; -+ break; -+ } -+ } else { -+ struct gsmd_evt_auxdata *aux; -+ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, -+ GSMD_EVT_CIPHER, -+ sizeof(*aux)); -+ if (!ucmd) -+ return -ENOMEM; -+ -+ aux = (struct gsmd_evt_auxdata *) ucmd->buf; -+ -+ aux->u.cipher.net_state_gsm = atoi(tok1); -+ aux->u.cipher.net_state_gsm = atoi(tok2); -+ -+ usock_evt_send(gsmd, ucmd, GSMD_EVT_CIPHER); -+ } -+ -+ return 0; -+} -+ -+/* Call Progress Information */ -+static int cpi_parse(char *buf, int len, const char *param, struct gsmd *gsmd) -+{ -+ char *tok; -+ struct gsmd_evt_auxdata *aux; -+ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, -+ GSMD_EVT_OUT_STATUS, -+ sizeof(*aux)); -+ -+ DEBUGP("entering cpi_parse param=`%s'\n", param); -+ if (!ucmd) -+ return -EINVAL; -+ -+ aux = (struct gsmd_evt_auxdata *) ucmd->buf; -+ -+ /* Format: cId, msgType, ibt, tch, dir,[mode],[number],[type],[alpha],[cause],line */ -+ -+ /* call ID */ -+ tok = strtok(buf, ","); -+ if (!tok) -+ goto out_free_io; -+ -+ /* message type (layer 3) */ -+ tok = strtok(NULL, ","); -+ if (!tok) -+ goto out_free_io; -+ aux->u.call_status.prog = atoi(tok); -+ -+ /* in-band tones */ -+ tok = strtok(NULL, ","); -+ if (!tok) -+ goto out_free_io; -+ -+ if (*tok == '1') -+ aux->u.call_status.ibt = 1; -+ else -+ aux->u.call_status.ibt = 0; -+ -+ /* TCH allocated */ -+ tok = strtok(NULL, ","); -+ if (!tok) -+ goto out_free_io; -+ -+ if (*tok == '1') -+ aux->u.call_status.tch = 1; -+ else -+ aux->u.call_status.tch = 0; -+ -+ /* direction */ -+ tok = strtok(NULL, ","); -+ if (!tok) -+ goto out_send; -+ -+ switch (*tok) { -+ case '0': -+ case '1': -+ case '2': -+ case '3': -+ aux->u.call_status.dir = (*tok - '0'); -+ break; -+ default: -+ break; -+ } -+ -+ /* mode */ -+ tok = strtok(NULL, ","); -+ if (!tok) -+ goto out_send; -+ -+out_send: -+ usock_evt_send(gsmd, ucmd, GSMD_EVT_OUT_STATUS); -+ -+ return 0; -+ -+out_free_io: -+ talloc_free(ucmd); -+ return -EIO; -+} -+ -+static const struct gsmd_unsolicit tihtc_unsolicit[] = { -+ { "%HTCCSQ", &htccsq_parse }, /* Signal Quality */ -+ { "%CPRI", &cpri_parse }, /* Ciphering Indication */ -+ { "%CPI", &cpi_parse }, /* Call Progress Information */ -+ -+ /* FIXME: parse the below and generate the respective events */ -+ -+ /* %CGREG: reports extended information about GPRS registration state */ -+}; -+ -+static int cpi_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) -+{ -+ struct gsmd *g = ctx; -+ struct gsm_extrsp *er; -+ -+ if (strncmp(resp, "%CPI: ", 6)) -+ return -EINVAL; -+ resp += 6; -+ -+ er = extrsp_parse(cmd, resp); -+ if (!er) -+ return -EINVAL; -+ -+ if (extrsp_supports(er, 0, 3)) -+ return gsmd_simplecmd(g, "AT%CPI=3"); -+ else if (extrsp_supports(er, 0, 2)) -+ return gsmd_simplecmd(g, "AT%CPI=2"); -+ else -+ DEBUGP("Call Progress Indication mode 2 or 3 not supported!!\n"); -+ -+ talloc_free(er); -+ return 0; -+} -+ -+static int tihtc_detect(struct gsmd *g) -+{ -+ /* FIXME: do actual detection of vendor if we have multiple vendors */ -+ /* open /proc/cpuinfo and check for HTC Magician or HTC Blueangel? */ -+ /* check for N_TIHTC ldisc? or set it ourselves? */ -+ return 1; -+} -+ -+static int tihtc_initsettings(struct gsmd *g) -+{ -+ int rc; -+ struct gsmd_atcmd *cmd; -+ -+ /* use %CGREG */ -+ //rc |= gsmd_simplecmd(g, "AT%CGREG=3"); -+ /* enable %CPRI: ciphering indications */ -+ rc |= gsmd_simplecmd(g, "AT%CPRI=1"); -+ /* enable %HTCCSQ: signal quality reports */ -+ rc |= gsmd_simplecmd(g, "AT%HTCCSQ=1"); -+ /* send unsolicited commands at any time */ -+ rc |= gsmd_simplecmd(g, "AT%CUNS=0"); -+ -+ /* enable %CPI: call progress indication */ -+ cmd = atcmd_fill("AT%CPI=?", 9, &cpi_detect_cb, g, 0); -+ if (cmd) -+ atcmd_submit(g, cmd); -+ -+ return rc; -+} -+ -+static struct gsmd_vendor_plugin plugin_tihtc = { -+ .name = "TI Calypso / HTC firmware", -+ .num_unsolicit = ARRAY_SIZE(tihtc_unsolicit), -+ .unsolicit = tihtc_unsolicit, -+ .detect = &tihtc_detect, -+ .initsettings = &tihtc_initsettings, -+}; -+ -+/* FIXME: this will be _init() when we make this a plugin */ -+int tihtc_init(void) -+{ -+ return gsmd_vendor_plugin_register(&plugin_tihtc); -+} -Index: gsm/src/gsmd/gsmd.c -=================================================================== ---- gsm.orig/src/gsmd/gsmd.c 2007-03-27 13:07:59.000000000 +0200 -+++ gsm/src/gsmd/gsmd.c 2007-03-27 13:08:08.000000000 +0200 -@@ -276,7 +276,7 @@ - } - - /* FIXME: do this dynamically */ -- ticalypso_init(); -+ tihtc_init(); - - gsmd_vendor_plugin_find(&g); - -Index: gsm/src/gsmd/Makefile.am -=================================================================== ---- gsm.orig/src/gsmd/Makefile.am 2007-03-27 13:09:11.000000000 +0200 -+++ gsm/src/gsmd/Makefile.am 2007-03-27 13:09:20.000000000 +0200 -@@ -4,7 +4,7 @@ - sbin_PROGRAMS = gsmd - - gsmd_SOURCES = gsmd.c atcmd.c select.c vendor.c usock.c unsolicited.c log.c \ -- vendor_ti.c talloc.c operator_cache.c ext_response.c -+ vendor_ti.c vendor_tihtc.c talloc.c operator_cache.c ext_response.c - #gsmd_LDADD = ../libgsmd/libgsmd.la - #gsmd_LDFLAGS = -dynamic - diff --git a/packages/gsm/files/numeric.patch b/packages/gsm/files/numeric.patch new file mode 100644 index 0000000000..cd1990cbe5 --- /dev/null +++ b/packages/gsm/files/numeric.patch @@ -0,0 +1,56 @@ +Index: gsm/src/gsmd/atcmd.c +=================================================================== +--- gsm.orig/src/gsmd/atcmd.c 2007-04-02 09:59:16.000000000 +0200 ++++ gsm/src/gsmd/atcmd.c 2007-04-02 10:10:54.000000000 +0200 +@@ -207,7 +207,7 @@ + * TBD + */ + +- if (buf[0] == '+' || buf[0] == '%') { ++ if (buf[0] == '+' || buf[0] == '%' || buf[0] == '@') { + /* an extended response */ + const char *colon = strchr(buf, ':'); + if (!colon) { +@@ -269,14 +269,13 @@ + memcpy(cmd->buf, buf, len); + } + } else { +- if (!strcmp(buf, "RING")) { ++ if (!strcmp(buf, "RING") || buf[0] == '2') { + /* this is the only non-extended unsolicited return + * code, part of Case 'B' */ + return unsolicited_parse(g, buf, len, NULL); + } + +- if (!strcmp(buf, "ERROR") || +- ((g->flags & GSMD_FLAG_V0) && buf[0] == '4')) { ++ if (!strcmp(buf, "ERROR") || buf[0] == '4') { + /* Part of Case 'C' */ + DEBUGP("unspecified error\n"); + if (cmd) +@@ -285,8 +284,7 @@ + goto final_cb; + } + +- if (!strncmp(buf, "OK", 2) +- || ((g->flags & GSMD_FLAG_V0) && buf[0] == '0')) { ++ if (!strncmp(buf, "OK", 2) || buf[0] == '0') { + /* Part of Case 'C' */ + if (cmd) + cmd->ret = 0; +@@ -296,13 +294,13 @@ + + /* FIXME: handling of those special commands in response to + * ATD / ATA */ +- if (!strncmp(buf, "NO CARRIER", 11)) { ++ if (!strncmp(buf, "NO CARRIER", 11) || buf[0] == '3') { + /* Part of Case 'D' */ + final = 1; + goto final_cb; + } + +- if (!strncmp(buf, "BUSY", 4)) { ++ if (!strncmp(buf, "BUSY", 4) || buf[0] == '7') { + /* Part of Case 'D' */ + final = 1; + goto final_cb; diff --git a/packages/gsm/files/plugin.patch b/packages/gsm/files/plugin.patch new file mode 100644 index 0000000000..7f455ce718 --- /dev/null +++ b/packages/gsm/files/plugin.patch @@ -0,0 +1,935 @@ +Index: gsm/include/gsmd/gsmd.h +=================================================================== +--- gsm.orig/include/gsmd/gsmd.h 2007-04-02 09:58:55.000000000 +0200 ++++ gsm/include/gsmd/gsmd.h 2007-04-02 11:03:41.000000000 +0200 +@@ -7,6 +7,7 @@ + + #include <common/linux_list.h> + ++#include <gsmd/machineplugin.h> + #include <gsmd/vendorplugin.h> + #include <gsmd/select.h> + #include <gsmd/state.h> +@@ -58,12 +59,14 @@ + + struct gsmd { + unsigned int flags; ++ int interpreter_ready; + struct gsmd_fd gfd_uart; + struct gsmd_fd gfd_sock; + struct llparser llp; + struct llist_head users; + struct llist_head pending_atcmds; /* our busy gsmd_atcmds */ + struct llist_head busy_atcmds; /* our busy gsmd_atcmds */ ++ struct gsmd_machine_plugin *machinepl; + struct gsmd_vendor_plugin *vendorpl; + struct gsmd_device_state dev_state; + +Index: gsm/include/gsmd/machineplugin.h +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gsm/include/gsmd/machineplugin.h 2007-04-02 11:03:41.000000000 +0200 +@@ -0,0 +1,24 @@ ++#ifndef _GSMD_MACHINEPLUG_H ++#define _GSMD_MACHINEPLUG_H ++ ++#ifdef __GSMD__ ++ ++#include <common/linux_list.h> ++#include <gsmd/gsmd.h> ++ ++struct gsmd; ++ ++struct gsmd_machine_plugin { ++ struct llist_head list; ++ unsigned char *name; ++ int (*detect)(struct gsmd *g); ++ int (*init)(struct gsmd *g, int fd); ++}; ++ ++extern int gsmd_machine_plugin_register(struct gsmd_machine_plugin *pl); ++extern void gsmd_machine_plugin_unregister(struct gsmd_machine_plugin *pl); ++extern int gsmd_machine_plugin_find(struct gsmd *g); ++ ++#endif /* __GSMD__ */ ++ ++#endif +Index: gsm/src/gsmd/machine_tihtc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gsm/src/gsmd/machine_tihtc.c 2007-04-02 11:03:41.000000000 +0200 +@@ -0,0 +1,71 @@ ++/* TI [Calypso] with HTC firmware machine plugin ++ * ++ * Written by Philipp Zabel <philipp.zabel@gmail.com> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ */ ++ ++#include <stdlib.h> ++#include <unistd.h> ++#include <string.h> ++#include <stdio.h> ++#include <errno.h> ++#include <sys/ioctl.h> ++ ++#include "gsmd.h" ++ ++#include <gsmd/gsmd.h> ++#include <gsmd/usock.h> ++#include <gsmd/event.h> ++#include <gsmd/talloc.h> ++#include <gsmd/extrsp.h> ++#include <gsmd/machineplugin.h> ++ ++#define N_TIHTC 17 ++ ++static int tihtc_detect(struct gsmd *g) ++{ ++ /* FIXME: do actual detection of machine if we have multiple machines */ ++ return 1; ++} ++ ++static int tihtc_init(struct gsmd *g, int fd) ++{ ++ int ldisc = N_TIHTC; ++ int rc; ++ ++ /* ++ * Himalaya, Blueangel, Alpine and Magican ++ * power up their GSM chipsets when the ++ * tty is opened. Wait for the "AT-Command ++ * Interpreter ready" message before trying ++ * to send commands. ++ */ ++ g->interpreter_ready = 0; ++ ++ /* Set the line discipline to N_TIHTC */ ++ rc = ioctl(fd, TIOCSETD, &ldisc); ++ if (rc < 0) ++ fprintf(stderr, "can't set line discipline\n"); ++ ++ return rc; ++} ++ ++struct gsmd_machine_plugin gsmd_machine_plugin = { ++ .name = "TI Calypso / HTC firmware", ++ .detect = &tihtc_detect, ++ .init = &tihtc_init, ++}; +Index: gsm/src/gsmd/machine_generic.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gsm/src/gsmd/machine_generic.c 2007-04-02 11:03:41.000000000 +0200 +@@ -0,0 +1,61 @@ ++/* generic machine plugin ++ * ++ * Written by Philipp Zabel <philipp.zabel@gmail.com> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ */ ++ ++#include <stdlib.h> ++#include <unistd.h> ++#include <string.h> ++#include <stdio.h> ++#include <errno.h> ++ ++#include "gsmd.h" ++ ++#include <gsmd/gsmd.h> ++#include <gsmd/usock.h> ++#include <gsmd/event.h> ++#include <gsmd/talloc.h> ++#include <gsmd/extrsp.h> ++#include <gsmd/machineplugin.h> ++ ++static int generic_detect(struct gsmd *g) ++{ ++ /* FIXME: do actual detection of machine if we have multiple machines */ ++ return 1; ++} ++ ++static int generic_init(struct gsmd *g, int fd) ++{ ++ int rc; ++ ++ /* ++ * We assume that the GSM chipset can take ++ * input immediately, so we don't have to ++ * wait for the "AT-Command Interpreter ready" ++ * message before trying to send commands. ++ */ ++ g->interpreter_ready = 1; ++ ++ return 0; ++} ++ ++struct gsmd_machine_plugin gsmd_machine_plugin = { ++ .name = "generic", ++ .detect = &generic_detect, ++ .init = &generic_init, ++}; +Index: gsm/src/gsmd/machine.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gsm/src/gsmd/machine.c 2007-04-02 13:43:04.000000000 +0200 +@@ -0,0 +1,140 @@ ++/* gsmd machine plugin core ++ * ++ * Written by Philipp Zabel <philipp.zabel@gmail.com> ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ */ ++ ++#include <dlfcn.h> ++#include <errno.h> ++#include <stdio.h> ++#include <string.h> ++ ++#include <common/linux_list.h> ++ ++#include "gsmd.h" ++ ++#include <gsmd/gsmd.h> ++#include <gsmd/machineplugin.h> ++ ++static LLIST_HEAD(machinepl_list); ++ ++int gsmd_machine_plugin_register(struct gsmd_machine_plugin *pl) ++{ ++ llist_add(&pl->list, &machinepl_list); ++ ++ return 0; ++} ++ ++void gsmd_machine_plugin_unregister(struct gsmd_machine_plugin *pl) ++{ ++ llist_del(&pl->list); ++} ++ ++int gsmd_machine_plugin_find(struct gsmd *g) ++{ ++ struct gsmd_machine_plugin *pl; ++ ++ if (g->machinepl) ++ return -EEXIST; ++ ++ llist_for_each_entry(pl, &machinepl_list, list) { ++ if (pl->detect(g) == 1) { ++ DEBUGP("selecting machine plugin \"%s\"\n", pl->name); ++ g->machinepl = pl; ++ return 1; ++ } ++ } ++ ++ return 0; ++} ++ ++int gsmd_machine_plugin_load(char *name) ++{ ++ int rc = -1; ++ void *plugin; ++ struct gsmd_machine_plugin *pl; ++ char buf[128]; ++ ++ DEBUGP("loading machine plugin \"%s\"\n", name); ++ ++ snprintf(buf, sizeof(buf), PLUGINDIR"/libgsmd-machine_%s.so", name); ++ ++ plugin = dlopen(buf, RTLD_LAZY); ++ if (!plugin) { ++ fprintf(stderr, "gsmd_machine_plugin_load: %s\n", dlerror()); ++ return -1; ++ } ++ ++ pl = dlsym(plugin, "gsmd_machine_plugin"); ++ if (pl) ++ rc = gsmd_machine_plugin_register(pl); ++ else ++ dlclose(plugin); ++ ++ return rc; ++} ++ ++/* maybe /etc/gsmd/cpuinfo */ ++struct machines { ++ char *cpuinfo; ++ char *machine; ++ char *vendor; ++} machines[] = { ++ { "GTA01", "generic", "ti" }, ++ { "HTC Blueangel", "tihtc", "tihtc" }, ++ { "HTC Himalaya", "tihtc", "tihtc" }, ++ { "HTC Magician", "tihtc", "tihtc" }, ++ { "HTC Universal", "generic", "qc" }, ++ { NULL, NULL, NULL }, ++}; ++ ++int gsmd_machine_plugin_init(struct gsmd *g, int fd) ++{ ++ FILE *cpuinfo; ++ char buf[1024]; ++ char *line, *machine = NULL; ++ int i, rc; ++ ++ cpuinfo = fopen("/proc/cpuinfo", "r"); ++ fread(buf, sizeof(buf), 1, cpuinfo); ++ fclose(cpuinfo); ++ ++ line = strtok(buf, "\n"); ++ while (line = strtok(NULL, "\n")) { ++ if (strncmp(line, "Hardware\t: ", 11) == 0) { ++ machine = line+11; ++ break; ++ } ++ } ++ /* FIXME: do this dynamically */ ++ if (machine) { ++ for (i = 0; machines[i].cpuinfo; i++) { ++ if (strcmp(machine, machines[i].cpuinfo) == 0) { ++ DEBUGP("detected %s\n", machine); ++ rc = gsmd_machine_plugin_load(machines[i].machine); ++ rc |= gsmd_vendor_plugin_load(machines[i].vendor); ++ return rc; ++ } ++ } ++ } ++ /* load generic machine and all vendor plugins */ ++ rc = gsmd_machine_plugin_load("generic"); ++ gsmd_vendor_plugin_load("ti"); ++ gsmd_vendor_plugin_load("tihtc"); ++ gsmd_vendor_plugin_load("qc"); ++ return rc; ++} +Index: gsm/src/gsmd/vendor_qc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gsm/src/gsmd/vendor_qc.c 2007-04-02 11:03:41.000000000 +0200 +@@ -0,0 +1,104 @@ ++/* Qualcomm [msm6250] gsmd plugin ++ * ++ * Written by Philipp Zabel <philipp.zabel@gmail.com> ++ * based on vendor_ti.c ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ */ ++ ++#include <stdlib.h> ++#include <unistd.h> ++#include <string.h> ++#include <stdio.h> ++#include <errno.h> ++ ++#include "gsmd.h" ++ ++#include <gsmd/gsmd.h> ++#include <gsmd/usock.h> ++#include <gsmd/event.h> ++#include <gsmd/talloc.h> ++#include <gsmd/extrsp.h> ++#include <gsmd/atcmd.h> ++#include <gsmd/vendorplugin.h> ++#include <gsmd/unsolicited.h> ++ ++static int htccsq_parse(char *buf, int len, const char *param, ++ struct gsmd *gsmd) ++{ ++ char *tok; ++ struct gsmd_evt_auxdata *aux; ++ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, GSMD_EVT_SIGNAL, ++ sizeof(*aux)); ++ static int rssi_table[] = { 0,5,10,15,20,25,99 }; /* FIXME */ ++ unsigned int i; ++ ++ DEBUGP("entering htccsq_parse param=`%s'\n", param); ++ if (!ucmd) ++ return -EINVAL; ++ ++ ++ aux = (struct gsmd_evt_auxdata *) ucmd->buf; ++ ++ i = atoi(buf); ++ if (i > 6) ++ i = 6; ++ aux->u.signal.sigq.rssi = rssi_table[atoi(buf)]; ++ aux->u.signal.sigq.ber = 99; ++ ++ DEBUGP("sending EVT_SIGNAL\n"); ++ usock_evt_send(gsmd, ucmd, GSMD_EVT_SIGNAL); ++ ++ return 0; ++ ++out_free_io: ++ free(ucmd); ++ return -EIO; ++} ++ ++static const struct gsmd_unsolicit qc_unsolicit[] = { ++ { "@HTCCSQ", &htccsq_parse }, /* Signal Quality */ ++ ++ /* FIXME: parse the below and generate the respective events */ ++ ++ /* %CGREG: reports extended information about GPRS registration state */ ++}; ++ ++static int qc_detect(struct gsmd *g) ++{ ++ /* FIXME: do actual detection of vendor if we have multiple vendors */ ++ /* open /proc/cpuinfo and check for HTC Universal? */ ++ return 1; ++} ++ ++static int qc_initsettings(struct gsmd *g) ++{ ++ int rc; ++ struct gsmd_atcmd *cmd; ++ ++ /* enable @HTCCSQ: signal quality reports */ ++ rc |= gsmd_simplecmd(g, "AT@HTCCSQ=1"); ++ ++ return rc; ++} ++ ++struct gsmd_vendor_plugin gsmd_vendor_plugin = { ++ .name = "Qualcomm msm6250", ++ .num_unsolicit = ARRAY_SIZE(qc_unsolicit), ++ .unsolicit = qc_unsolicit, ++ .detect = &qc_detect, ++ .initsettings = &qc_initsettings, ++}; +Index: gsm/src/gsmd/Makefile.am +=================================================================== +--- gsm.orig/src/gsmd/Makefile.am 2007-04-02 09:58:55.000000000 +0200 ++++ gsm/src/gsmd/Makefile.am 2007-04-02 13:33:11.000000000 +0200 +@@ -1,11 +1,26 @@ + INCLUDES = $(all_includes) -I$(top_srcdir)/include + AM_CFLAGS = -std=gnu99 ++plugindir = $(libdir)/gsmd + + sbin_PROGRAMS = gsmd + +-gsmd_SOURCES = gsmd.c atcmd.c select.c vendor.c usock.c unsolicited.c log.c \ +- vendor_ti.c talloc.c operator_cache.c ext_response.c +-#gsmd_LDADD = ../libgsmd/libgsmd.la +-#gsmd_LDFLAGS = -dynamic ++gsmd_CFLAGS = -D PLUGINDIR=\"$(plugindir)\" ++gsmd_SOURCES = gsmd.c atcmd.c select.c machine.c vendor.c unsolicited.c log.c \ ++ usock.c talloc.c operator_cache.c ext_response.c ++gsmd_LDADD = -ldl ++gsmd_LDFLAGS = -Wl,--export-dynamic ++ ++plugin_LTLIBRARIES = libgsmd-machine_generic.la \ ++ libgsmd-machine_tihtc.la \ ++ libgsmd-vendor_ti.la \ ++ libgsmd-vendor_tihtc.la \ ++ libgsmd-vendor_qc.la ++ ++libgsmd_machine_generic_la_SOURCES = machine_generic.c ++libgsmd_machine_tihtc_la_SOURCES = machine_tihtc.c ++ ++libgsmd_vendor_ti_la_SOURCES = vendor_ti.c ++libgsmd_vendor_tihtc_la_SOURCES = vendor_tihtc.c ++libgsmd_vendor_qc_la_SOURCES = vendor_qc.c + + noinst_HEADERS = gsmd.h +Index: gsm/src/gsmd/atcmd.c +=================================================================== +--- gsm.orig/src/gsmd/atcmd.c 2007-04-02 11:03:40.000000000 +0200 ++++ gsm/src/gsmd/atcmd.c 2007-04-02 11:03:41.000000000 +0200 +@@ -183,6 +183,7 @@ + * an empty string or that 'ready' string, we need to init the modem */ + if (strlen(buf) == 0 || + !strcmp(buf, "AT-Command Interpreter ready")) { ++ g->interpreter_ready = 1; + gsmd_initsettings(g); + return 0; + } +@@ -370,7 +371,7 @@ + } + + /* write pending commands to UART */ +- if (what & GSMD_FD_WRITE) { ++ if ((what & GSMD_FD_WRITE) && g->interpreter_ready) { + struct gsmd_atcmd *pos, *pos2; + llist_for_each_entry_safe(pos, pos2, &g->pending_atcmds, list) { + len = strlen(pos->buf); +Index: gsm/src/gsmd/vendor_tihtc.c +=================================================================== +--- /dev/null 1970-01-01 00:00:00.000000000 +0000 ++++ gsm/src/gsmd/vendor_tihtc.c 2007-04-02 13:16:45.000000000 +0200 +@@ -0,0 +1,305 @@ ++/* TI [Calypso] with HTC firmware gsmd plugin ++ * ++ * Written by Philipp Zabel <philipp.zabel@gmail.com> ++ * based on vendor_ti.c ++ * ++ * This program is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation; either version 2 of the License, or ++ * (at your option) any later version. ++ * ++ * This program is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License along ++ * with this program; if not, write to the Free Software Foundation, Inc., ++ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. ++ * ++ */ ++ ++#include <stdlib.h> ++#include <unistd.h> ++#include <string.h> ++#include <stdio.h> ++#include <errno.h> ++ ++#include "gsmd.h" ++ ++#include <gsmd/gsmd.h> ++#include <gsmd/usock.h> ++#include <gsmd/event.h> ++#include <gsmd/talloc.h> ++#include <gsmd/extrsp.h> ++#include <gsmd/atcmd.h> ++#include <gsmd/vendorplugin.h> ++#include <gsmd/unsolicited.h> ++ ++static int gsmd_test_atcb(struct gsmd_atcmd *cmd, void *ctx, char *resp) ++{ ++ printf("`%s' returned `%s'\n", cmd->buf, resp); ++ return 0; ++} ++ ++int gsmd_simplecmd(struct gsmd *gsmd, char *cmdtxt) ++{ ++ struct gsmd_atcmd *cmd; ++ cmd = atcmd_fill(cmdtxt, strlen(cmdtxt)+1, &gsmd_test_atcb, NULL, 0); ++ if (!cmd) ++ return -ENOMEM; ++ ++ return atcmd_submit(gsmd, cmd); ++} ++ ++ ++#if 0 ++#include "vendorplugin.h" ++ ++static int ++ti_getopt(struct gsmd *gh, int optname, void *optval, int *optlen) ++{ ++ switch (optname) { ++ case GSMD_OPT_CIPHER_IND: ++ /* FIXME: send AT%CPRI=? */ ++ break; ++ default: ++ return -EINVAL; ++ } ++} ++ ++static int ++ti_setopt(struct gsmd *gh, int optname, const void *optval, int optlen) ++{ ++ switch (optname) { ++ case GSMD_OPT_CIPHER_IND: ++ /* FIXME: send AT%CPRI= */ ++ break; ++ default: ++ return -EINVAL; ++ } ++} ++ ++#endif ++ ++ ++static int htccsq_parse(char *buf, int len, const char *param, ++ struct gsmd *gsmd) ++{ ++ char *tok; ++ struct gsmd_evt_auxdata *aux; ++ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, GSMD_EVT_SIGNAL, ++ sizeof(*aux)); ++ ++ DEBUGP("entering htccsq_parse param=`%s'\n", param); ++ if (!ucmd) ++ return -EINVAL; ++ ++ ++ aux = (struct gsmd_evt_auxdata *) ucmd->buf; ++ ++ /* FIXME: contains values 1-5, should be mapped to 0-31 somehow? */ ++ /* 2 --> 11 */ ++ aux->u.signal.sigq.rssi = atoi(buf); ++ aux->u.signal.sigq.ber = 99; ++ ++ DEBUGP("sending EVT_SIGNAL\n"); ++ usock_evt_send(gsmd, ucmd, GSMD_EVT_SIGNAL); ++ ++ return 0; ++ ++out_free_io: ++ free(ucmd); ++ return -EIO; ++} ++ ++static int cpri_parse(char *buf, int len, const char *param, struct gsmd *gsmd) ++{ ++ char *tok1, *tok2; ++ ++ tok1 = strtok(buf, ","); ++ if (!tok1) ++ return -EIO; ++ ++ tok2 = strtok(NULL, ","); ++ if (!tok2) { ++ switch (atoi(tok1)) { ++ case 0: ++ gsmd->dev_state.ciph_ind.flags &= ~GSMD_CIPHIND_ACTIVE; ++ break; ++ case 1: ++ gsmd->dev_state.ciph_ind.flags |= GSMD_CIPHIND_ACTIVE; ++ break; ++ case 2: ++ gsmd->dev_state.ciph_ind.flags |= GSMD_CIPHIND_DISABLED_SIM; ++ break; ++ } ++ } else { ++ struct gsmd_evt_auxdata *aux; ++ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, ++ GSMD_EVT_CIPHER, ++ sizeof(*aux)); ++ if (!ucmd) ++ return -ENOMEM; ++ ++ aux = (struct gsmd_evt_auxdata *) ucmd->buf; ++ ++ aux->u.cipher.net_state_gsm = atoi(tok1); ++ aux->u.cipher.net_state_gsm = atoi(tok2); ++ ++ usock_evt_send(gsmd, ucmd, GSMD_EVT_CIPHER); ++ } ++ ++ return 0; ++} ++ ++/* Call Progress Information */ ++static int cpi_parse(char *buf, int len, const char *param, struct gsmd *gsmd) ++{ ++ char *tok; ++ struct gsmd_evt_auxdata *aux; ++ struct gsmd_ucmd *ucmd = usock_build_event(GSMD_MSG_EVENT, ++ GSMD_EVT_OUT_STATUS, ++ sizeof(*aux)); ++ ++ DEBUGP("entering cpi_parse param=`%s'\n", param); ++ if (!ucmd) ++ return -EINVAL; ++ ++ aux = (struct gsmd_evt_auxdata *) ucmd->buf; ++ ++ /* Format: cId, msgType, ibt, tch, dir,[mode],[number],[type],[alpha],[cause],line */ ++ ++ /* call ID */ ++ tok = strtok(buf, ","); ++ if (!tok) ++ goto out_free_io; ++ ++ /* message type (layer 3) */ ++ tok = strtok(NULL, ","); ++ if (!tok) ++ goto out_free_io; ++ aux->u.call_status.prog = atoi(tok); ++ ++ /* in-band tones */ ++ tok = strtok(NULL, ","); ++ if (!tok) ++ goto out_free_io; ++ ++ if (*tok == '1') ++ aux->u.call_status.ibt = 1; ++ else ++ aux->u.call_status.ibt = 0; ++ ++ /* TCH allocated */ ++ tok = strtok(NULL, ","); ++ if (!tok) ++ goto out_free_io; ++ ++ if (*tok == '1') ++ aux->u.call_status.tch = 1; ++ else ++ aux->u.call_status.tch = 0; ++ ++ /* direction */ ++ tok = strtok(NULL, ","); ++ if (!tok) ++ goto out_send; ++ ++ switch (*tok) { ++ case '0': ++ case '1': ++ case '2': ++ case '3': ++ aux->u.call_status.dir = (*tok - '0'); ++ break; ++ default: ++ break; ++ } ++ ++ /* mode */ ++ tok = strtok(NULL, ","); ++ if (!tok) ++ goto out_send; ++ ++out_send: ++ usock_evt_send(gsmd, ucmd, GSMD_EVT_OUT_STATUS); ++ ++ return 0; ++ ++out_free_io: ++ talloc_free(ucmd); ++ return -EIO; ++} ++ ++static const struct gsmd_unsolicit tihtc_unsolicit[] = { ++ { "%HTCCSQ", &htccsq_parse }, /* Signal Quality */ ++ { "%CPRI", &cpri_parse }, /* Ciphering Indication */ ++ { "%CPI", &cpi_parse }, /* Call Progress Information */ ++ ++ /* FIXME: parse the below and generate the respective events */ ++ ++ /* %CGREG: reports extended information about GPRS registration state */ ++}; ++ ++static int cpi_detect_cb(struct gsmd_atcmd *cmd, void *ctx, char *resp) ++{ ++ struct gsmd *g = ctx; ++ struct gsm_extrsp *er; ++ ++ if (strncmp(resp, "%CPI: ", 6)) ++ return -EINVAL; ++ resp += 6; ++ ++ er = extrsp_parse(cmd, resp); ++ if (!er) ++ return -EINVAL; ++ ++ if (extrsp_supports(er, 0, 3)) ++ return gsmd_simplecmd(g, "AT%CPI=3"); ++ else if (extrsp_supports(er, 0, 2)) ++ return gsmd_simplecmd(g, "AT%CPI=2"); ++ else ++ DEBUGP("Call Progress Indication mode 2 or 3 not supported!!\n"); ++ ++ talloc_free(er); ++ return 0; ++} ++ ++static int tihtc_detect(struct gsmd *g) ++{ ++ /* FIXME: do actual detection of vendor if we have multiple vendors */ ++ /* open /proc/cpuinfo and check for HTC Magician or HTC Blueangel? */ ++ /* check for N_TIHTC ldisc? or set it ourselves? */ ++ return 1; ++} ++ ++static int tihtc_initsettings(struct gsmd *g) ++{ ++ int rc; ++ struct gsmd_atcmd *cmd; ++ ++ /* use %CGREG */ ++ //rc |= gsmd_simplecmd(g, "AT%CGREG=3"); ++ /* enable %CPRI: ciphering indications */ ++ rc |= gsmd_simplecmd(g, "AT%CPRI=1"); ++ /* enable %HTCCSQ: signal quality reports */ ++ rc |= gsmd_simplecmd(g, "AT%HTCCSQ=1"); ++ /* send unsolicited commands at any time */ ++ rc |= gsmd_simplecmd(g, "AT%CUNS=0"); ++ ++ /* enable %CPI: call progress indication */ ++ cmd = atcmd_fill("AT%CPI=?", 9, &cpi_detect_cb, g, 0); ++ if (cmd) ++ atcmd_submit(g, cmd); ++ ++ return rc; ++} ++ ++struct gsmd_vendor_plugin gsmd_vendor_plugin = { ++ .name = "TI Calypso / HTC firmware", ++ .num_unsolicit = ARRAY_SIZE(tihtc_unsolicit), ++ .unsolicit = tihtc_unsolicit, ++ .detect = &tihtc_detect, ++ .initsettings = &tihtc_initsettings, ++}; +Index: gsm/src/gsmd/vendor_ti.c +=================================================================== +--- gsm.orig/src/gsmd/vendor_ti.c 2007-04-02 09:58:55.000000000 +0200 ++++ gsm/src/gsmd/vendor_ti.c 2007-04-02 11:03:41.000000000 +0200 +@@ -301,16 +301,10 @@ + return rc; + } + +-static struct gsmd_vendor_plugin plugin_ticalypso = { ++struct gsmd_vendor_plugin gsmd_vendor_plugin = { + .name = "TI Calypso", + .num_unsolicit = ARRAY_SIZE(ticalypso_unsolicit), + .unsolicit = ticalypso_unsolicit, + .detect = &ticalypso_detect, + .initsettings = &ticalypso_initsettings, + }; +- +-/* FIXME: this will be _init() when we make this a plugin */ +-int ticalypso_init(void) +-{ +- return gsmd_vendor_plugin_register(&plugin_ticalypso); +-} +Index: gsm/src/gsmd/gsmd.c +=================================================================== +--- gsm.orig/src/gsmd/gsmd.c 2007-04-02 09:58:55.000000000 +0200 ++++ gsm/src/gsmd/gsmd.c 2007-04-02 13:39:40.000000000 +0200 +@@ -254,6 +254,21 @@ + exit(1); + } + ++ if (gsmd_machine_plugin_init(&g) < 0) { ++ fprintf(stderr, "no machine plugins found\n"); ++ exit(1); ++ } ++ ++ /* select a machine plugin and load possible vendor plugins */ ++ gsmd_machine_plugin_find(&g); ++ ++ /* initialize the machine plugin */ ++ if (g.machinepl->init) ++ if (g.machinepl->init(&g, fd) < 0) { ++ fprintf(stderr, "couldn't initialize machine plugin\n"); ++ exit(1); ++ } ++ + if (atcmd_init(&g, fd) < 0) { + fprintf(stderr, "can't initialize UART device\n"); + exit(1); +@@ -275,12 +290,11 @@ + setsid(); + } + +- /* FIXME: do this dynamically */ +- ticalypso_init(); +- ++ /* select a vendor plugin */ + gsmd_vendor_plugin_find(&g); + +- gsmd_initsettings(&g); ++ if (g.interpreter_ready) ++ gsmd_initsettings(&g); + + gsmd_opname_init(&g); + +Index: gsm/src/gsmd/vendor.c +=================================================================== +--- gsm.orig/src/gsmd/vendor.c 2007-04-02 09:58:55.000000000 +0200 ++++ gsm/src/gsmd/vendor.c 2007-04-02 13:38:38.000000000 +0200 +@@ -20,7 +20,10 @@ + * + */ + ++#include <dlfcn.h> + #include <errno.h> ++#include <stdio.h> ++#include <string.h> + + #include <common/linux_list.h> + +@@ -52,6 +55,7 @@ + + llist_for_each_entry(pl, &vendorpl_list, list) { + if (pl->detect(g) == 1) { ++ DEBUGP("selecting vendor plugin \"%s\"\n", pl->name); + g->vendorpl = pl; + return 1; + } +@@ -59,3 +63,29 @@ + + return 0; + } ++ ++int gsmd_vendor_plugin_load(char *name) ++{ ++ int rc = -1; ++ void *lib; ++ struct gsmd_vendor_plugin *pl; ++ char buf[128]; ++ ++ DEBUGP("loading vendor plugin \"%s\"\n", name); ++ ++ snprintf(buf, sizeof(buf), PLUGINDIR"/libgsmd-vendor_%s.so", name); ++ ++ lib = dlopen(buf, RTLD_LAZY); ++ if (!lib) { ++ fprintf(stderr, "gsmd_vendor_plugin_load: %s\n", dlerror()); ++ return -1; ++ } ++ ++ pl = dlsym(lib, "gsmd_vendor_plugin"); ++ if (pl) ++ rc = gsmd_vendor_plugin_register(pl); ++ else ++ dlclose(lib); ++ ++ return rc; ++} diff --git a/packages/gsm/libgsmd_svn.bb b/packages/gsm/libgsmd_svn.bb index 2019185b33..607d4db1be 100644 --- a/packages/gsm/libgsmd_svn.bb +++ b/packages/gsm/libgsmd_svn.bb @@ -4,17 +4,17 @@ LICENSE = "GPL" SECTION = "libs/gsm" PROVIDES += "gsmd" PV = "0.0+svn${SRCDATE}" -PR = "r8" +PR = "r10" SRC_URI = "svn://svn.openmoko.org/trunk/src/target;module=gsm;proto=http \ file://gsmd \ file://default" S = "${WORKDIR}/gsm" -SRC_URI_append_htcuniversal = " file://interpreter-ready.patch;patch=1" -SRC_URI_append_magician = " file://vendor-tihtc.patch;patch=1 \ - file://interpreter-ready.patch;patch=1 \ - file://ldisc.patch;patch=1" +SRC_URI_append_magician = "file://numeric.patch;patch=1 \ + file://plugin.patch;patch=1" +SRC_URI_append_htcuniversal = "file://numeric.patch;patch=1 \ + file://plugin.patch;patch=1" inherit autotools pkgconfig update-rc.d @@ -32,10 +32,12 @@ do_install_append() { install ${WORKDIR}/default ${D}/${sysconfdir}/default/gsmd } -PACKAGES =+ "${PN}-tools gsmd" +PACKAGES =+ "${PN}-tools gsmd gsmd-plugins" RDEPENDS_${PN} = "gsmd" +RRECOMMENDS_gsmd = "gsmd-plugins" FILES_${PN}-tools = "${bindir}/*" FILES_gsmd = "${sbindir}/gsmd ${sysconfdir}" +FILES_gsmd-plugins = "${libdir}/gsmd/*.so*" PACKAGES_DYNAMIC = "libgsmd* gsmd" diff --git a/packages/gtk+/gtk+_2.6.10.bb b/packages/gtk+/gtk+_2.6.10.bb index c096bbe688..ed2d9aea80 100644 --- a/packages/gtk+/gtk+_2.6.10.bb +++ b/packages/gtk+/gtk+_2.6.10.bb @@ -5,7 +5,7 @@ SECTION = "libs" LICENSE = "LGPL" PRIORITY = "optional" DEPENDS = "glib-2.0 pango atk jpeg libpng libxext libxcursor gtk-doc libgcrypt" -PR = "r9" +PR = "r10" SRC_URI = "ftp://ftp.gtk.org/pub/gtk/v2.6/gtk+-${PV}.tar.bz2 \ file://help.patch;patch=1 \ diff --git a/packages/hwdata/.mtn2git_empty b/packages/hwdata/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/hwdata/.mtn2git_empty diff --git a/packages/hwdata/hwdata_0.191.bb b/packages/hwdata/hwdata_0.191.bb new file mode 100644 index 0000000000..2dfe1433bf --- /dev/null +++ b/packages/hwdata/hwdata_0.191.bb @@ -0,0 +1,14 @@ +DESCRIPTION = "This package contains various hardware identification and configuration data, such as the pci.ids database, or the XFree86/xorg Cards database. It's needed for the kudzu hardware detection." +LICENSE = "GPL + X11" + +SRC_URI = "http://archive.ubuntu.com/ubuntu/pool/main/h/hwdata/hwdata_0.191.orig.tar.gz \ + http://archive.ubuntu.com/ubuntu/pool/main/h/hwdata/hwdata_0.191-1.diff.gz;patch=1 \ + " + +PACKAGE_ARCH = "all" + + +do_install() { + mkdir -p ${D}${datadir}/hwdata + install -m644 MonitorsDB pci* usb.ids video* upgradelist ${D}${datadir}/hwdata +} diff --git a/packages/linux/linux-x86-2.6.20/netvista/defconfig b/packages/linux/linux-x86-2.6.20/netvista/defconfig index 864a42b303..4db3370642 100644 --- a/packages/linux/linux-x86-2.6.20/netvista/defconfig +++ b/packages/linux/linux-x86-2.6.20/netvista/defconfig @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.20 -# Tue Apr 3 00:46:14 2007 +# Thu Apr 5 12:46:55 2007 # CONFIG_X86_32=y CONFIG_GENERIC_TIME=y @@ -870,11 +870,13 @@ CONFIG_INPUT=y # CONFIG_INPUT_MOUSEDEV=y CONFIG_INPUT_MOUSEDEV_PSAUX=y -CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024 -CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768 +CONFIG_INPUT_MOUSEDEV_SCREEN_X=800 +CONFIG_INPUT_MOUSEDEV_SCREEN_Y=600 # CONFIG_INPUT_JOYDEV is not set -# CONFIG_INPUT_TSDEV is not set -# CONFIG_INPUT_EVDEV is not set +CONFIG_INPUT_TSDEV=m +CONFIG_INPUT_TSDEV_SCREEN_X=800 +CONFIG_INPUT_TSDEV_SCREEN_Y=600 +CONFIG_INPUT_EVDEV=m # CONFIG_INPUT_EVBUG is not set # @@ -892,7 +894,15 @@ CONFIG_MOUSE_PS2=y # CONFIG_MOUSE_SERIAL is not set # CONFIG_MOUSE_VSXXXAA is not set # CONFIG_INPUT_JOYSTICK is not set -# CONFIG_INPUT_TOUCHSCREEN is not set +CONFIG_INPUT_TOUCHSCREEN=y +CONFIG_TOUCHSCREEN_GUNZE=m +CONFIG_TOUCHSCREEN_ELO=m +CONFIG_TOUCHSCREEN_MTOUCH=m +CONFIG_TOUCHSCREEN_MK712=m +CONFIG_TOUCHSCREEN_PENMOUNT=m +CONFIG_TOUCHSCREEN_TOUCHRIGHT=m +CONFIG_TOUCHSCREEN_TOUCHWIN=m +CONFIG_TOUCHSCREEN_UCB1400=m # CONFIG_INPUT_MISC is not set # @@ -1117,6 +1127,7 @@ CONFIG_SOUND=y CONFIG_SND=y CONFIG_SND_TIMER=y CONFIG_SND_PCM=y +CONFIG_SND_RAWMIDI=m CONFIG_SND_SEQUENCER=y # CONFIG_SND_SEQ_DUMMY is not set CONFIG_SND_OSSEMUL=y @@ -1134,7 +1145,8 @@ CONFIG_SND_VERBOSE_PROCFS=y # # Generic devices # -CONFIG_SND_AC97_CODEC=y +CONFIG_SND_MPU401_UART=m +CONFIG_SND_AC97_CODEC=m # CONFIG_SND_DUMMY is not set # CONFIG_SND_VIRMIDI is not set # CONFIG_SND_MTPAV is not set @@ -1160,7 +1172,7 @@ CONFIG_SND_AC97_CODEC=y # CONFIG_SND_CMIPCI is not set # CONFIG_SND_CS4281 is not set # CONFIG_SND_CS46XX is not set -# CONFIG_SND_CS5535AUDIO is not set +CONFIG_SND_CS5535AUDIO=m # CONFIG_SND_DARLA20 is not set # CONFIG_SND_GINA20 is not set # CONFIG_SND_LAYLA20 is not set @@ -1185,7 +1197,7 @@ CONFIG_SND_AC97_CODEC=y # CONFIG_SND_HDSPM is not set # CONFIG_SND_ICE1712 is not set # CONFIG_SND_ICE1724 is not set -CONFIG_SND_INTEL8X0=y +CONFIG_SND_INTEL8X0=m # CONFIG_SND_INTEL8X0M is not set # CONFIG_SND_KORG1212 is not set # CONFIG_SND_MAESTRO3 is not set @@ -1197,9 +1209,9 @@ CONFIG_SND_INTEL8X0=y # CONFIG_SND_RME96 is not set # CONFIG_SND_RME9652 is not set # CONFIG_SND_SONICVIBES is not set -# CONFIG_SND_TRIDENT is not set -# CONFIG_SND_VIA82XX is not set -# CONFIG_SND_VIA82XX_MODEM is not set +CONFIG_SND_TRIDENT=m +CONFIG_SND_VIA82XX=m +CONFIG_SND_VIA82XX_MODEM=m # CONFIG_SND_VX222 is not set # CONFIG_SND_YMFPCI is not set # CONFIG_SND_AC97_POWER_SAVE is not set @@ -1213,8 +1225,31 @@ CONFIG_SND_INTEL8X0=y # # Open Sound System # -# CONFIG_SOUND_PRIME is not set -CONFIG_AC97_BUS=y +CONFIG_SOUND_PRIME=m +# CONFIG_SOUND_BT878 is not set +# CONFIG_SOUND_ES1371 is not set +# CONFIG_SOUND_ICH is not set +# CONFIG_SOUND_TRIDENT is not set +# CONFIG_SOUND_MSNDCLAS is not set +# CONFIG_SOUND_MSNDPIN is not set +# CONFIG_SOUND_VIA82CXXX is not set +CONFIG_SOUND_OSS=m +# CONFIG_SOUND_TRACEINIT is not set +# CONFIG_SOUND_DMAP is not set +# CONFIG_SOUND_CS4232 is not set +# CONFIG_SOUND_SSCAPE is not set +# CONFIG_SOUND_VMIDI is not set +# CONFIG_SOUND_TRIX is not set +# CONFIG_SOUND_MSS is not set +# CONFIG_SOUND_MPU401 is not set +# CONFIG_SOUND_PAS is not set +# CONFIG_SOUND_PSS is not set +CONFIG_SOUND_SB=m +# CONFIG_SOUND_YM3812 is not set +# CONFIG_SOUND_UART6850 is not set +# CONFIG_SOUND_AEDSP16 is not set +# CONFIG_SOUND_KAHLUA is not set +CONFIG_AC97_BUS=m # # HID Devices diff --git a/packages/linux/linux-x86_2.6.20.bb b/packages/linux/linux-x86_2.6.20.bb index 5db1563733..d7600dcfa9 100644 --- a/packages/linux/linux-x86_2.6.20.bb +++ b/packages/linux/linux-x86_2.6.20.bb @@ -1,7 +1,7 @@ DESCRIPTION = "Linux Kernel for x86 compatible machines" SECTION = "kernel" LICENSE = "GPL" -PR = "r0" +PR = "r2" SRC_URI = "${KERNELORG_MIRROR}/pub/linux/kernel/v2.6/linux-${PV}.tar.bz2 \ file://defconfig" diff --git a/packages/meta/meta-e-x11-core.bb b/packages/meta/meta-e-x11-core.bb index 21960c6573..cdc76402e1 100644 --- a/packages/meta/meta-e-x11-core.bb +++ b/packages/meta/meta-e-x11-core.bb @@ -4,7 +4,7 @@ ALLOW_EMPTY = "1" PR = "r1" PACKAGE_ARCH = "all" LICENSE = "MIT" -BUILD_ALL_DEPS="1" -DEPENDS = "task-e-x11-core" RDEPENDS = "task-e-x11-core" + +inherit meta
\ No newline at end of file diff --git a/packages/meta/meta-e-x11.bb b/packages/meta/meta-e-x11.bb index 0edfd43496..1182b0cf42 100644 --- a/packages/meta/meta-e-x11.bb +++ b/packages/meta/meta-e-x11.bb @@ -4,7 +4,7 @@ ALLOW_EMPTY = "1" PR = "r1" PACKAGE_ARCH = "all" LICENSE = "MIT" -BUILD_ALL_DEPS = "1" -DEPENDS = "task-e-x11" RDEPENDS = "task-e-x11" + +inherit meta
\ No newline at end of file diff --git a/packages/meta/meta-gpe-extras.bb b/packages/meta/meta-gpe-extras.bb index 0adb7c4e05..b4425a682e 100644 --- a/packages/meta/meta-gpe-extras.bb +++ b/packages/meta/meta-gpe-extras.bb @@ -2,15 +2,10 @@ DESCRIPTION = "Meta-package of extra applications for the GPE Palmtop Environmen LICENSE = "MIT" PR="r2" -ALLOW_EMPTY = "1" -BUILD_ALL_DEPS = "1" - -DEPENDS = "task-gpe" - RDEPENDS = "\ gpe-task-apps-extra \ gpe-task-games \ gpe-task-web \ gpe-task-desktopapps" - +inherit meta diff --git a/packages/meta/meta-gpe.bb b/packages/meta/meta-gpe.bb index 2360db447f..d6e199f6d6 100644 --- a/packages/meta/meta-gpe.bb +++ b/packages/meta/meta-gpe.bb @@ -2,11 +2,6 @@ DESCRIPTION = "Meta-package for GPE Palmtop Environment" LICENSE = "MIT" PR = "r42" -ALLOW_EMPTY = "1" -BUILD_ALL_DEPS = "1" - -DEPENDS = "task-gpe" - RDEPENDS = "\ gpe-base-depends \ gpe-task-base \ @@ -15,3 +10,5 @@ RDEPENDS = "\ gpe-task-apps \ gpe-task-games \ gpe-task-connectivity" + +inherit meta diff --git a/packages/meta/meta-gpephone.bb b/packages/meta/meta-gpephone.bb index 96e393bf47..a0bd51e5fc 100644 --- a/packages/meta/meta-gpephone.bb +++ b/packages/meta/meta-gpephone.bb @@ -2,14 +2,11 @@ DESCRIPTION = "Meta-package for GPE Palmtop Environment Phone packages" LICENSE = "MIT" PR = "r0" -ALLOW_EMPTY = "1" -BUILD_ALL_DEPS = "1" - -DEPENDS = "task-gpe" - RDEPENDS = "\ gpe-base-depends \ gpephone-task-base \ gpephone-task-settings \ gpephone-task-pim \ gpeph-task-connectivity" + +inherit meta
\ No newline at end of file diff --git a/packages/meta/meta-opie-all.bb b/packages/meta/meta-opie-all.bb index 6f315d3306..ccdbbe973d 100644 --- a/packages/meta/meta-opie-all.bb +++ b/packages/meta/meta-opie-all.bb @@ -1,14 +1,16 @@ DESCRIPTION = "Meta-package for QPE stuff" SECTION = "opie/base" -ALLOW_EMPTY = "1" -PACKAGE_ARCH = "all" LICENSE = "MIT" -DEPENDS = "task-qpe" PR = "r3" -BUILD_ALL_DEPS = "1" - -RDEPENDS = "task-qpe-applets task-qpe-games task-qpe-inputmethods \ - task-qpe-multimedia task-qpe-emulators task-qpe-applications \ - task-qpe-fonts task-qpe-settings" +RDEPENDS = " \ + task-qpe-applets \ + task-qpe-games \ + task-qpe-inputmethods \ + task-qpe-multimedia \ + task-qpe-emulators \ + task-qpe-applications \ + task-qpe-fonts \ + task-qpe-settings" +inherit meta
\ No newline at end of file diff --git a/packages/meta/meta-opie.bb b/packages/meta/meta-opie.bb index 1158d859a0..6a9c35c5e3 100644 --- a/packages/meta/meta-opie.bb +++ b/packages/meta/meta-opie.bb @@ -1,12 +1,8 @@ DESCRIPTION = "Meta-package for Opie" SECTION = "opie/base" -ALLOW_EMPTY = "1" PR = "r34" -PACKAGE_ARCH = "all" LICENSE = "MIT" -BUILD_ALL_DEPS = "1" -DEPENDS = "task-opie" RDEPENDS = "task-opie-applets task-opie-apps task-opie-base \ task-opie-base-applets task-opie-base-apps \ task-opie-base-decorations task-opie-base-inputmethods \ @@ -19,3 +15,4 @@ RDEPENDS = "task-opie-applets task-opie-apps task-opie-base \ task-opie-multimedia task-opie-pim task-opie-settings \ task-opie-styles task-opie-todayplugins task-opie-wlan" +inherit meta
\ No newline at end of file diff --git a/packages/meta/meta-sdk-sbox.bb b/packages/meta/meta-sdk-sbox.bb index 0642d49e0e..98fb6053c0 100644 --- a/packages/meta/meta-sdk-sbox.bb +++ b/packages/meta/meta-sdk-sbox.bb @@ -1,10 +1,9 @@ DESCRIPTION = "Meta package for a Scratchbox SDK" LICENSE = "MIT" -PR = "r2" - PACKAGES = "" +PR = "r4" -inherit rootfs_ipk sdk debian +inherit rootfs_ipk sdk meta SDK_DIR = "${WORKDIR}/sdk" SDK_OUTPUT = "${SDK_DIR}/image" @@ -16,6 +15,7 @@ FILES_${PN} = "${prefix}" TARGET_INSTALL = "\ task-sdk-base \ + task-sdk-sbox \ task-sdk-x11 \ task-sdk-x11-ext \ task-sdk-gpe \ @@ -23,7 +23,6 @@ TARGET_INSTALL = "\ DEPENDS = "ipkg-native ipkg-utils-native fakeroot-native sed-native" RDEPENDS = "${TARGET_INSTALL}" -BUILD_ALL_DEPS = "1" IPKG_TARGET = "ipkg-cl -f ${SDK_DIR}/ipkg-target.conf -o ${SDK_OUTPUT}/${prefix}" @@ -77,8 +76,12 @@ EOF # remove unwanted executables rm -rf ${SDK_OUTPUT}/${prefix}/sbin ${SDK_OUTPUT}/${prefix}/etc - # remove broken .la files - #rm ${SDK_OUTPUT}/${prefix}/lib/*.la + # fixup libtool files + cd ${SDK_OUTPUT}/${prefix}/lib/ + for f in *.la ; do + sed -i 's%${STAGING_DIR}${TARGET_SYS}%/usr/%g' "$f" + done + # fix pkgconfig data files cd ${SDK_OUTPUT}/${prefix}/usr/lib/pkgconfig @@ -92,4 +95,5 @@ EOF } do_populate_sdk[nostamp] = "1" +do_populate_sdk[recrdeptask] = "do_package_write" addtask populate_sdk before do_build after do_install diff --git a/packages/meta/meta-sdk.bb b/packages/meta/meta-sdk.bb index 7bf8606418..e49858398f 100644 --- a/packages/meta/meta-sdk.bb +++ b/packages/meta/meta-sdk.bb @@ -3,9 +3,7 @@ LICENSE = "MIT" DEPENDS = "ipkg-native ipkg-utils-native fakeroot-native sed-native" PR = "r11" -PACKAGES = "" - -inherit sdk +inherit sdk meta SDK_DIR = "${WORKDIR}/sdk" SDK_OUTPUT = "${SDK_DIR}/image" @@ -18,6 +16,7 @@ HOST_INSTALL = "\ binutils-cross-sdk \ gcc-cross-sdk \ gdb-cross" + TARGET_INSTALL = "\ task-sdk-base \ task-sdk-opie \ @@ -26,7 +25,6 @@ TARGET_INSTALL = "\ task-sdk-gpe" RDEPENDS = "${TARGET_INSTALL} ${HOST_INSTALL}" -BUILD_ALL_DEPS = "1" do_populate_sdk() { touch ${DEPLOY_DIR_IPK}/Packages @@ -99,4 +97,5 @@ EOF } do_populate_sdk[nostamp] = "1" +do_populate_sdk[recrdeptask] = "do_package_write" addtask populate_sdk before do_build after do_install diff --git a/packages/meta/meta-sdl.bb b/packages/meta/meta-sdl.bb index cb19cb6834..a1ab3918b7 100644 --- a/packages/meta/meta-sdl.bb +++ b/packages/meta/meta-sdl.bb @@ -1,15 +1,7 @@ DESCRIPTION = "Meta-package for SDL" LICENSE = "MIT" -RDEPENDS = "task-sdl-libs task-sdl-games task-sdl-emulators" PR = "r2" -ALLOW_EMPTY = "1" -BUILD_ALL_DEPS = "1" - -# no need to add libsdl as all libsdl-* already rdepend on it -RDEPENDS_task-sdl-libs = "libsdl-gfx libsdl-image libsdl-mixer libsdl-ttf libsdl-net" - -RDEPENDS_task-sdl-games = "abuse freedroid lbreakout2 openttd prboom quake1 rott supertux xmame" - -RDEPENDS_task-sdl-emulators = "dgen-sdl e-uae frodo snes9x" +RDEPENDS = "task-sdl-libs task-sdl-games task-sdl-emulators" +inherit meta
\ No newline at end of file diff --git a/packages/meta/meta-sectest-gpe.bb b/packages/meta/meta-sectest-gpe.bb index 70bcfc4bc5..a73559ab1a 100644 --- a/packages/meta/meta-sectest-gpe.bb +++ b/packages/meta/meta-sectest-gpe.bb @@ -2,11 +2,6 @@ DESCRIPTION = "Meta-package for GPE Security Testing Image" LICENSE = "MIT" PR = "r6" -ALLOW_EMPTY = "1" -BUILD_ALL_DEPS = "1" - -DEPENDS = "task-gpe" - RDEPENDS = "\ gpe-task-base \ gpe-base-depends \ @@ -14,3 +9,5 @@ RDEPENDS = "\ gpe-task-settings \ gpe-task-pim \ gpe-task-sectest" + +inherit meta
\ No newline at end of file diff --git a/packages/meta/meta-toolchain.bb b/packages/meta/meta-toolchain.bb index 7995ac3cb8..35dbe9f4cb 100644 --- a/packages/meta/meta-toolchain.bb +++ b/packages/meta/meta-toolchain.bb @@ -3,9 +3,7 @@ LICENSE = "MIT" DEPENDS = "ipkg-native ipkg-utils-native fakeroot-native sed-native" PR = "r0" -PACKAGES = "" - -inherit sdk +inherit sdk meta SDK_DIR = "${WORKDIR}/sdk" SDK_OUTPUT = "${SDK_DIR}/image" @@ -23,7 +21,6 @@ TARGET_INSTALL = "\ " RDEPENDS = "${TARGET_INSTALL} ${HOST_INSTALL}" -BUILD_ALL_DEPS = "1" do_populate_sdk() { touch ${DEPLOY_DIR_IPK}/Packages @@ -96,4 +93,5 @@ EOF } do_populate_sdk[nostamp] = "1" +do_populate_sdk[recrdeptask] = "do_package_write" addtask populate_sdk before do_build after do_install diff --git a/packages/meta/xbase-clients.bb b/packages/meta/xbase-clients.bb index 4297440074..5f3c640f00 100644 --- a/packages/meta/xbase-clients.bb +++ b/packages/meta/xbase-clients.bb @@ -1,4 +1,5 @@ DESCRIPTION = "Basic X clients (meta package)" +LICENSE = "MIT" PR = "r1" ALLOW_EMPTY = "1" @@ -9,4 +10,4 @@ RDEPENDS = 'xauth \ xmodmap \ xrdb \ xset' -LICENSE = "MIT" + diff --git a/packages/openmoko-base/openmoko-common_svn.bb b/packages/openmoko-base/openmoko-common_svn.bb index 15cc97d39f..e72d325bb9 100644 --- a/packages/openmoko-base/openmoko-common_svn.bb +++ b/packages/openmoko-base/openmoko-common_svn.bb @@ -5,7 +5,7 @@ PR = "r1" inherit openmoko-base -SRC_URI = "${OPENMOKO_MIRROR}/src/target/${OPENMOKO_RELEASE}/artwork;module=images;proto=https" +SRC_URI = "${OPENMOKO_MIRROR}/src/target/${OPENMOKO_RELEASE}/artwork;module=images;proto=http" S = "${WORKDIR}" dirs = "images/pixmaps" diff --git a/packages/perl/perl-5.8.4/.mtn2git_empty b/packages/perl/perl-5.8.4/.mtn2git_empty new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/packages/perl/perl-5.8.4/.mtn2git_empty diff --git a/packages/perl/files/Makefile.SH.patch b/packages/perl/perl-5.8.4/Makefile.SH.patch index 35a4e6dfde..35a4e6dfde 100644 --- a/packages/perl/files/Makefile.SH.patch +++ b/packages/perl/perl-5.8.4/Makefile.SH.patch diff --git a/packages/perl/files/Makefile.patch b/packages/perl/perl-5.8.4/Makefile.patch index eec127643b..eec127643b 100644 --- a/packages/perl/files/Makefile.patch +++ b/packages/perl/perl-5.8.4/Makefile.patch diff --git a/packages/perl/files/config.sh-arm-linux.patch b/packages/perl/perl-5.8.4/config.sh-arm-linux.patch index 44d8b1a89d..44d8b1a89d 100644 --- a/packages/perl/files/config.sh-arm-linux.patch +++ b/packages/perl/perl-5.8.4/config.sh-arm-linux.patch diff --git a/packages/perl/files/config.sh-i686-linux b/packages/perl/perl-5.8.4/config.sh-i686-linux index 0978100abc..0978100abc 100644 --- a/packages/perl/files/config.sh-i686-linux +++ b/packages/perl/perl-5.8.4/config.sh-i686-linux diff --git a/packages/perl/files/config.sh-mipsel-linux b/packages/perl/perl-5.8.4/config.sh-mipsel-linux index eedf443f04..eedf443f04 100644 --- a/packages/perl/files/config.sh-mipsel-linux +++ b/packages/perl/perl-5.8.4/config.sh-mipsel-linux diff --git a/packages/perl/files/uclibc.patch b/packages/perl/perl-5.8.4/uclibc.patch index ce8fe80ff2..ce8fe80ff2 100644 --- a/packages/perl/files/uclibc.patch +++ b/packages/perl/perl-5.8.4/uclibc.patch diff --git a/packages/perl/perl.inc b/packages/perl/perl.inc index 64e548a121..cda260efcd 100644 --- a/packages/perl/perl.inc +++ b/packages/perl/perl.inc @@ -9,35 +9,10 @@ SRC_URI = "ftp://ftp.funet.fi/pub/CPAN/src/perl-${PV}.tar.gz \ file://Makefile.patch;patch=1 \ file://config.sh-arm-linux.patch;patch=1 \ file://libperl-5.8.3-create-libperl-soname.patch;patch=1;pnum=0 \ - file://uclibc.patch;patch=1 \ - file://Makefile.SH.patch \ - file://config.sh-mipsel-linux \ - file://config.sh-i686-linux" + file://Makefile.SH.patch" HOSTPERL="${STAGING_BINDIR_NATIVE}/perl${PV}" -do_configure() { - ln -sf ${HOSTPERL} ${STAGING_BINDIR_NATIVE}/hostperl - cp ${HOSTPERL} hostperl - cd Cross - rm -f Makefile.SH.patch - cp ${WORKDIR}/Makefile.SH.patch . - cp ${WORKDIR}/config.sh-mipsel-linux . - cp ${WORKDIR}/config.sh-i686-linux . - cat config.sh-arm-linux | sed -e "s,arm-linux,armeb-linux,g" > config.sh-armeb-linux - for i in config.sh-*-linux; do - a="`echo $i|sed -e 's,^config.sh-,,; s,-linux$,,'`" - newfile="`echo $i|sed -e 's,-linux$,-linux-uclibc,g'`" - cat $i | sed -e "s,${a}-linux,${a}-linux-uclibc,g; \ - s,d_sockatmark='define',d_sockatmark='undef',g;" > $newfile - done - sed -i -e 's,./install_me_here,${D},g' config.sh-${TARGET_ARCH}-${TARGET_OS} - rm -f config - echo "ARCH = ${TARGET_ARCH}" > config - echo "OS = ${TARGET_OS}" >> config - oe_runmake patch -} - do_compile() { sed -i -e 's|/usr/include|${STAGING_INCDIR}|g' ext/Errno/Errno_pm.PL cd Cross diff --git a/packages/perl/perl_5.8.4.bb b/packages/perl/perl_5.8.4.bb index 7509f1b66b..10a871c8dd 100644 --- a/packages/perl/perl_5.8.4.bb +++ b/packages/perl/perl_5.8.4.bb @@ -1,3 +1,29 @@ require perl.inc PR = "r5" + +SRC_URI += "file://uclibc.patch;patch=1 \ + file://config.sh-mipsel-linux \ + file://config.sh-i686-linux" + +do_configure() { + ln -sf ${HOSTPERL} ${STAGING_BINDIR_NATIVE}/hostperl + cp ${HOSTPERL} hostperl + cd Cross + rm -f Makefile.SH.patch + cp ${WORKDIR}/Makefile.SH.patch . + cp ${WORKDIR}/config.sh-mipsel-linux . + cp ${WORKDIR}/config.sh-i686-linux . + cat config.sh-arm-linux | sed -e "s,arm-linux,armeb-linux,g" > config.sh-armeb-linux + for i in config.sh-*-linux; do + a="`echo $i|sed -e 's,^config.sh-,,; s,-linux$,,'`" + newfile="`echo $i|sed -e 's,-linux$,-linux-uclibc,g'`" + cat $i | sed -e "s,${a}-linux,${a}-linux-uclibc,g; \ + s,d_sockatmark='define',d_sockatmark='undef',g;" > $newfile + done + sed -i -e 's,./install_me_here,${D},g' config.sh-${TARGET_ARCH}-${TARGET_OS} + rm -f config + echo "ARCH = ${TARGET_ARCH}" > config + echo "OS = ${TARGET_OS}" >> config + oe_runmake patch +} diff --git a/packages/perl/perl_5.8.7.bb b/packages/perl/perl_5.8.7.bb index 12aec88a02..874c95a79c 100644 --- a/packages/perl/perl_5.8.7.bb +++ b/packages/perl/perl_5.8.7.bb @@ -7,6 +7,7 @@ require perl.inc SRC_URI += "file://config.sh-armeb-linux \ file://config.sh-arm-linux \ file://config.sh-powerpc-linux \ + file://config.sh-mipsel-linux \ file://config.sh-i386-linux \ file://config.sh-i486-linux \ file://config.sh-i586-linux \ @@ -15,14 +16,13 @@ SRC_URI += "file://config.sh-armeb-linux \ file://config.sh-sh3-linux \ file://config.sh-sh4-linux" -# Patches for sh3/sh4, use gcc to link and override generaet.sh to -# use PIC mode for compiling shared library objects. -SRC_URI_append_sh4 += "file://override-generate-sh.patch;patch=1" -SRC_URI_append_sh4 += "file://makefile-usegcc-to-link.patch;patch=1" -SRC_URI_append_sh3 += "file://override-generate-sh.patch;patch=1" -SRC_URI_append_sh3 += "file://makefile-usegcc-to-link.patch;patch=1" -SRC_URI_append_powerpc += "file://override-generate-sh.patch;patch=1" -SRC_URI_append_powerpc += "file://makefile-usegcc-to-link.patch;patch=1" +# Use gcc to link and use PIC mode for compiling shared libs +GCCLINK_SRC = "file://override-generate-sh.patch;patch=1 \ + file://makefile-usegcc-to-link.patch;patch=1" + +SRC_URI_append_sh4 += " ${GCCLINK_SRC}" +SRC_URI_append_sh3 += " ${GCCLINK_SRC}" +SRC_URI_append_powerpc += " ${GCCLINK_SRC}" PARALLEL_MAKE = "" diff --git a/packages/sysvinit/sysvinit/htcuniversal/inittab b/packages/sysvinit/sysvinit/htcuniversal/inittab deleted file mode 100644 index 6abbdf4558..0000000000 --- a/packages/sysvinit/sysvinit/htcuniversal/inittab +++ /dev/null @@ -1,30 +0,0 @@ -# /etc/inittab: init(8) configuration. -# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $ - -# The default runlevel. -id:5:initdefault: - -# Boot-time system configuration/initialization script. -# This is run first except when booting in emergency (-b) mode. -si::sysinit:/etc/init.d/rcS - -# What to do in single-user mode. -~~:S:wait:/sbin/sulogin - -# /etc/init.d executes the S and K scripts upon change -# of runlevel. -# -# Runlevel 0 is halt. -# Runlevel 1 is single-user. -# Runlevels 2-5 are multi-user. -# Runlevel 6 is reboot. - -l0:0:wait:/etc/init.d/rc 0 -l1:1:wait:/etc/init.d/rc 1 -l2:2:wait:/etc/init.d/rc 2 -l3:3:wait:/etc/init.d/rc 3 -l4:4:wait:/etc/init.d/rc 4 -l5:5:wait:/etc/init.d/rc 5 -l6:6:wait:/etc/init.d/rc 6 -# Normally not reached, but fallthrough in case of emergency. -z6:6:respawn:/sbin/sulogin diff --git a/packages/tasks/task-base.bb b/packages/tasks/task-base.bb index ea76027335..8df6fa0450 100644 --- a/packages/tasks/task-base.bb +++ b/packages/tasks/task-base.bb @@ -1,5 +1,5 @@ DESCRIPTION = "Merge machine and distro options to create a basic machine task/package" -PR = "r21" +PR = "r22" PACKAGES = "task-base \ task-base-oh-minimal \ @@ -227,6 +227,8 @@ task-base-irda-rrecommends = "\ ${@base_contains("DISTRO_FEATURES", "ppp", "kernel-module-irnet", "",d)} \ kernel-module-irport \ kernel-module-irtty \ + kernel-module-irtty-sir \ + kernel-module-sir-dev \ ${@base_contains("COMBINED_FEATURES", "usbhost", "kernel-module-ir-usb", "",d)} " task-base-usbgadget-rrecommends = "\ diff --git a/packages/tasks/task-sdk-sbox.bb b/packages/tasks/task-sdk-sbox.bb new file mode 100644 index 0000000000..855d720143 --- /dev/null +++ b/packages/tasks/task-sdk-sbox.bb @@ -0,0 +1,17 @@ +DESCRIPTION = "SDK task for Scratchbox rootstraps" +PR = "r2" +LICENSE = "MIT" +ALLOW_EMPTY = "1" + +RDEPENDS := "\ + glib-2.0-utils \ + gdk-pixbuf-loader-png \ + gdk-pixbuf-loader-jpg \ + gdk-pixbuf-loader-gif \ + gdk-pixbuf-loader-xpm \ + intltool \ + strace \ + gdb \ + sbrsh \ + fakeroot \ + "
\ No newline at end of file diff --git a/packages/uboot/uboot-gta01_svn.bb b/packages/uboot/uboot-gta01_svn.bb index 0775bfcc91..b30a5bc66e 100644 --- a/packages/uboot/uboot-gta01_svn.bb +++ b/packages/uboot/uboot-gta01_svn.bb @@ -10,7 +10,7 @@ PROVIDES = "virtual/bootloader" S = "${WORKDIR}/git" SRC_URI = "git://www.denx.de/git/u-boot.git/;protocol=git \ - svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;proto=https \ + svn://svn.openmoko.org/trunk/src/target/u-boot;module=patches;proto=http \ file://fix-arm920t-eabi.patch;patch=1" EXTRA_OEMAKE = "CROSS_COMPILE=${TARGET_PREFIX}" |