On Tue, Oct 31, 2000 at 03:31:28PM -0700, Bradley C. Midgley wrote: > hi guys > > i would like to see mol added to the available packages (or at least do a > one-off proper package), so i started trying to build it from inside > debian. a couple of notes: packages certainly would be nice, i have to do all kinds of patching to make the damn thing go into /usr/local where it belongs. there is more to life then .rpm sheesh.... > 1. i don't know what package provides /usr/include/net/sock.h et all for > compiling the network (kernel) module -- my guess is it would be something > like kernel-modules-dev; i can fudge this using the kernel source but i > want to know how to do it right. hmm i don't have such a file on my system and was able to compile MOL. the makefile does use the kernel headers in /usr/src/linux/include (i have a /usr/src/linux symlink to /usr/local/src/linux which is a link to /usr/local/src/linux-2.2.17.) i do however have to at least copy my .config back to the kenrel source tree and run make oldconfig && make dep. otherwise the mol modules get miscompiled. > 2. libelf is not explicitly linked into mol. i've sent a patch upstream > but i don't know why it would work without -lelf under redhat. hmmph. yup i don't know why this is still broken it *should* fail everywhere but i suspect nobody actually compiles this bugger themselves. adding -lelf to the linker arguments in Rules.make seems to work fine... i enclosed a patch i made to fix things for my /usr/local setup, and to fix the insecure permissions it insists on installing with, along with fixing some insecure /tmp handling (not all of it im sure, i think the program itself has insecure tmp handling too, have not checked.) i have not really refined my changes enough to send upstream yet, feel free to improve. -- Ethan Benson http://www.alaska.net/~erbenson/
diff -ur /var/tmp/mol-0.9.53/Makefile mol-0.9.53/Makefile --- /var/tmp/mol-0.9.53/Makefile Mon Oct 30 11:35:29 2000 +++ mol-0.9.53/Makefile Mon Oct 30 23:36:10 2000 @@ -24,13 +24,13 @@ # Install directories BUILD_ROOT = -DOC_DIR = $(BUILD_ROOT)/usr/doc/mol-$(VERS) -BIN_DIR = $(BUILD_ROOT)/usr/bin +DOC_DIR = $(BUILD_ROOT)/usr/local/share/doc/mol +BIN_DIR = $(BUILD_ROOT)/usr/local/bin ETC_DIR = $(BUILD_ROOT)/etc -LIB_DIR = $(BUILD_ROOT)/usr/lib/mol +LIB_DIR = $(BUILD_ROOT)/usr/local/lib/mol DEV_DIR = $(BUILD_ROOT)/dev #MAN_DIR = /usr/local/man - +MAN_DIR = $(BUILD_ROOT)/usr/local/man MM_DIRS = debugger emulation drivers booter UTIL_DIRS = $(addprefix util/, debug dv kunload nvs \ @@ -47,8 +47,8 @@ $(MOL_LIB_DIR)/modules/System.map* lib/core CLEAN_DIRS = include sinclude Doc scripts -INST_FILE = install --mode=664 -INST_BIN = install --mode=775 +INST_FILE = install --mode=644 +INST_BIN = install --mode=755 # These lib directories are copied automatically upon intallation LIB_SUBS = bin config drivers images modules oftrees \ @@ -107,11 +107,11 @@ @install -d $(LIB_DIR)/nvram install --mode=644 $(MOL_LIB_DIR)/nvram/nvram.dist $(LIB_DIR)/nvram/nvram.nw @$(RM) $(LIB_DIR)/config/vmodes - @chmod -R a+x $(LIB_DIR)/bin + @chmod -R u=rwx,go=rx $(LIB_DIR)/bin @echo $(DOC_DIR) @install -d $(DOC_DIR) @cp -r Doc/* $(DOC_DIR) - @chmod -R a+rX,og+w,o-w $(DOC_DIR) + @chmod -R u+rwX,go=rX $(DOC_DIR) @$(INST_FILE) COPYING CREDITS COPYRIGHT $(DOC_DIR)/ @install -d $(BIN_DIR) @$(INST_BIN) -v startmol $(BIN_DIR)/startmol @@ -121,13 +121,15 @@ @$(INST_BIN) -v booter/strip_nwrom/strip_nwrom $(BIN_DIR)/strip_nwrom @strip $(LIB_DIR)/bin/mol @install -d $(ETC_DIR) - @$(INST_FILE) -v Doc/molrc.sample $(ETC_DIR)/molrc + @if [ ! -f $(ETC_DIR)/molrc ] ; then $(INST_FILE) -v Doc/molrc.sample $(ETC_DIR)/molrc ; fi @$(RM) $(LIB_DIR)/doc @install -d $(DEV_DIR) @$(RM) $(DEV_DIR)/sheep_net - @mknod $(DEV_DIR)/sheep_net c 10 198 - chmod +s,go-rw $(LIB_DIR)/bin/mol - chmod +s,go-rw $(LIB_DIR)/bin/ismolpatched + @mknod -m 600 $(DEV_DIR)/sheep_net c 10 198 + chown root.mol $(LIB_DIR)/bin/mol + chown root.mol $(LIB_DIR)/bin/ismolpatched + chmod 4754 $(LIB_DIR)/bin/mol + chmod 4754 $(LIB_DIR)/bin/ismolpatched @echo +++ INSTALL COMPLETE +++ diff -ur /var/tmp/mol-0.9.53/Rules.make mol-0.9.53/Rules.make --- /var/tmp/mol-0.9.53/Rules.make Mon Oct 30 11:35:29 2000 +++ mol-0.9.53/Rules.make Mon Oct 30 23:32:15 2000 @@ -115,7 +115,7 @@ # ifdef P_TARGET $(P_TARGET): sub_dirs $(O_OBJS) - $(CC) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LDFLAGS_TARGET1) -o $@ $(O_OBJS) $(STATIC_LIBS) + $(CC) $(LDFLAGS) $(LDFLAGS_EXTRA) $(LDFLAGS_TARGET1) -o $@ $(O_OBJS) $(STATIC_LIBS) -lelf $(P_TARGET_HOOK) endif diff -ur /var/tmp/mol-0.9.53/include/mol_config.h mol-0.9.53/include/mol_config.h --- /var/tmp/mol-0.9.53/include/mol_config.h Mon Oct 30 11:35:32 2000 +++ mol-0.9.53/include/mol_config.h Mon Oct 30 23:32:15 2000 @@ -17,7 +17,7 @@ #ifndef _H_MOL_CONFIG #define _H_MOL_CONFIG -#define MOL_LIB_DIR "/usr/lib/mol" +#define MOL_LIB_DIR "/usr/local/lib/mol" /* We use BSD signals... */ diff -ur /var/tmp/mol-0.9.53/kernel_module/runtime_patcher/molpatching mol-0.9.53/kernel_module/runtime_patcher/molpatching --- /var/tmp/mol-0.9.53/kernel_module/runtime_patcher/molpatching Mon Oct 30 10:27:52 2000 +++ mol-0.9.53/kernel_module/runtime_patcher/molpatching Mon Oct 30 23:32:15 2000 @@ -14,7 +14,7 @@ fi done if [ "$SYMF" == "" ] ; then - SYMF="/boot/System.map /usr/src/linux/System.map" + SYMF="/boot/System.map-`uname -r` /usr/src/linux/System.map" if [ -d "$MOL_LIB_DIR" ] ; then SYMF="$SYMF $MOL_LIB_DIR/modules/System.map*" fi @@ -36,8 +36,9 @@ # The order is IMPORTANT - must equal the definition in runtime.h! SYMS=( giveup_fpu do_signal_ret flush_hash_page last_task_used_math next_mmu_context handle_mm_fault Hash Hash_mask ) -TMPFILE=/tmp/System.map_tmp -rm -f $TMPFILE +TMP=${TMPDIR-/tmp} +TMPFILE=`mktemp -q "$TMP/System.map.XXXXXX"` +rm -f "$TMPFILE" #################################################################### # patch_apply System.map @@ -77,7 +78,7 @@ if [ $RET -eq 0 -a "$MOL_LIB_DIR" != "" ] ; then cp $1 $MOL_LIB_DIR/modules/System.map.last fi - rm -f $TMPFILE + rm -f "$TMPFILE" exit $RET } diff -ur /var/tmp/mol-0.9.53/lib/config/molrc.sys mol-0.9.53/lib/config/molrc.sys --- /var/tmp/mol-0.9.53/lib/config/molrc.sys Mon Oct 30 11:35:31 2000 +++ mol-0.9.53/lib/config/molrc.sys Mon Oct 30 23:32:15 2000 @@ -10,7 +10,7 @@ # All paths are relative the rootdir -rootdir: /usr/lib/mol +rootdir: /usr/local/lib/mol #################################### # Misc
Attachment:
pgpM__kMMZr90.pgp
Description: PGP signature