From b6583e7e9b66c85b37c909e22cdbff382de05607 Mon Sep 17 00:00:00 2001 From: tron Date: Sun, 19 Sep 1999 23:58:36 +0000 Subject: Update SuSE Linux emulation package to version 6.1p1. This patch level invents a complete new "rpm2pkg" utility which is faster, easier to use and creates a correct package list more reliably. --- emulators/suse_base/Makefile | 53 ++- emulators/suse_base/files/rpm2pkg.c | 666 +++++++++++++++++++++++++++++++++ emulators/suse_base/scripts/rpm2pkg.sh | 77 ---- emulators/suse_compat/Makefile | 30 +- emulators/suse_devel/Makefile | 41 +- emulators/suse_libc5/Makefile | 31 +- emulators/suse_linux/Makefile | 10 +- emulators/suse_linux/suse.mk | 41 ++ emulators/suse_x11/Makefile | 32 +- emulators/suse_xforms/Makefile | 30 +- 10 files changed, 771 insertions(+), 240 deletions(-) create mode 100644 emulators/suse_base/files/rpm2pkg.c delete mode 100755 emulators/suse_base/scripts/rpm2pkg.sh create mode 100644 emulators/suse_linux/suse.mk (limited to 'emulators') diff --git a/emulators/suse_base/Makefile b/emulators/suse_base/Makefile index 9b03a61ef8b..58a594ae235 100644 --- a/emulators/suse_base/Makefile +++ b/emulators/suse_base/Makefile @@ -1,65 +1,56 @@ -# $NetBSD: Makefile,v 1.8 1999/06/29 22:48:19 tron Exp $ +# $NetBSD: Makefile,v 1.9 1999/09/19 23:58:36 tron Exp $ -DISTNAME= suse_base-6.1 +DISTNAME= suse_base-6.1p1 CATEGORIES= emulators -MASTER_SITES= ftp://ftp.suse.com/pub/suse/i386/6.1/suse/a1/ \ - ftp://ftp.cs.unm.edu/mirrors/SuSE61/suse/a1/ -DISTFILES= aaa_dir.rpm shlibs.rpm ldso.rpm \ - bash.rpm gppshare.rpm ncurses.rpm -ONLY_FOR_PLATFORM= NetBSD-*-i386 +MASTER_SITES= ${MASTER_SITE_SUSE:=a1/} +DISTFILES= ${RPMFILES} MAINTAINER= tron@netbsd.org HOMEPAGE= http://www.suse.com/ -DEPENDS= rpm-2.5.4:../../misc/rpm +BUILD_DEPENDS+= ${RPMLIB}:../../misc/rpm CONFLICTS= linux_SuSE-5.3 linux_lib-2.4 - -DIST_SUBDIR= suse -MIRROR_DISTFILE= no +ONLY_FOR_PLATFORM= NetBSD-*-i386 EXTRACT_ONLY= # empty -NO_WRKSUBDIR= yes -MANCOMPRESSED= yes PLIST_SRC= ${WRKDIR}/PLIST_DYNAMIC -EMULSUBDIR= emul/linux -EMULDIR= ${PREFIX}/${EMULSUBDIR} +RPMFILES= aaa_dir.rpm shlibs.rpm ldso.rpm \ + bash.rpm gppshare.rpm ncurses.rpm +RPMIGNOREPATH= tmp usr/tmp var + LDD= ${PREFIX}/${EMULSUBDIR}/usr/bin/ldd -SBINDIR= ${PREFIX}/sbin +RPMLIB= ${LOCALBASE}/lib/librpm.a do-build: + ${CC} ${FILESDIR}/rpm2pkg.c ${CFLAGS} -I${PREFIX}/include/rpm \ + ${RPMLIB} -lz -o ${WRKSRC}/rpm2pkg @for FILE in ${PKGDIR}/PLIST ${SCRIPTDIR}/*.sh; do \ ${SED} -e 's#@@EMULDIR@@#${EMULDIR}#g' \ -e 's#@@EMULSUBDIR@@#${EMULSUBDIR}#g' \ - -e 's#@@AWK@@#${AWK}#g' \ - -e 's#@@PAX@@#${PAX}#g' \ - -e 's#@@PREFIX@@#${PREFIX}#g' \ <$$FILE >${WRKDIR}/`basename $$FILE`; \ done do-install: - cd ${WRKDIR}; \ - for FILE in *.sh; do \ - ${INSTALL_SCRIPT} $$FILE ${SBINDIR}/`basename $$FILE .sh`; \ + for FILE in ${WRKDIR}/*.sh; do \ + ${INSTALL_SCRIPT} $$FILE ${PREFIX}/sbin/`basename $$FILE .sh`; \ done + ${INSTALL_PROGRAM} ${WRKSRC}/rpm2pkg ${PREFIX}/sbin ${MKDIR} ${EMULDIR}/dev ${LN} -fs /dev/sound ${EMULDIR}/dev/dsp ${LN} -fs /dev/null ${EMULDIR}/dev/null @${CP} ${WRKDIR}/PLIST ${PLIST_SRC} - cd ${_DISTDIR} && \ - ${SBINDIR}/rpm2pkg ${DISTFILES} | \ - ${EGREP} -v '${EMULSUBDIR}/(tmp|usr/tmp|var)' >>${PLIST_SRC} - @cd ${EMULDIR} && ${RM} -rf tmp usr/tmp var + ${RPM2PKG} ${RPM2PKGARGS} + ${ECHO} "@dirrm ${EMULSUBDIR}" >>${PLIST_SRC} ${INSTALL_DATA} ${FILESDIR}/ld.so.conf ${EMULDIR}/etc + ${EMULDIR}/sbin/ldconfig -r ${EMULDIR} + ${ECHO} "@exec %D/${EMULSUBDIR}/sbin/ldconfig -r %D/${EMULSUBDIR}" \ + >>${PLIST_SRC} ${SED} -e 's:#! :#! /${EMULSUBDIR}:' \ -e 's:^RTLD=:RTLD=/${EMULSUBDIR}:' <${LDD} >${LDD}.new ${MV} ${LDD}.new ${LDD} ${CHMOD} +x ${LDD} - @${ECHO} "@unexec rm -rf %D/${EMULSUBDIR}" >>${PLIST_SRC} @${SETENV} PKG_PREFIX="${PREFIX}" ${SH} ${INSTALL_FILE} - POST-INSTALL -show-shlib-type: - @${ECHO} linux-${MACHINE_ARCH} - -.include "../../mk/bsd.pkg.mk" +.include "../suse_linux/suse.mk" diff --git a/emulators/suse_base/files/rpm2pkg.c b/emulators/suse_base/files/rpm2pkg.c new file mode 100644 index 00000000000..699d571030d --- /dev/null +++ b/emulators/suse_base/files/rpm2pkg.c @@ -0,0 +1,666 @@ +/* + + $NetBSD: rpm2pkg.c,v 1.1 1999/09/19 23:58:37 tron Exp $ + +*/ + +#include +#include + +#include +#include +#include +#include +#include +#include + +#include +#include +#include + +char CPIOMagic[] = {'0','7','0','7','0','1'}; + +#define CPIO_END_MARKER "TRAILER!!!" +#define CPIO_FIELD_LENGTH 8 + +#define CPIO_HDR_MODE 1 +#define CPIO_HDR_FILESIZE 6 +#define CPIO_HDR_NAMESIZE 11 +#define CPIO_NUM_HEADERS 13 + +#define CP_IFMT 0170000 + +#define TRUE 1 +#define FALSE 0 + +#define GZREAD(s,b,l) (gzread((s),(b),(l))==l) + +extern char *__progname; + +struct ModeMap + { + long mm_CPIOMode; + mode_t mm_SysMode; + }; +struct ModeMap ModeMapTab[] = + { + {C_IRUSR,S_IRUSR}, + {C_IWUSR,S_IWUSR}, + {C_IXUSR,S_IXUSR}, + {C_IRGRP,S_IRGRP}, + {C_IWGRP,S_IWGRP}, + {C_IXGRP,S_IXGRP}, + {C_IROTH,S_IROTH}, + {C_IWOTH,S_IWOTH}, + {C_IXOTH,S_IXOTH}, + {C_ISUID,S_ISUID}, + {C_ISGID,S_ISGID}, + {C_ISVTX,S_ISVTX}, + {0,0} + }; + +typedef struct PListEntryStruct PListEntry; +struct PListEntryStruct + { + PListEntry *pe_Childs[2]; + int pe_DirEmpty; + mode_t pe_DirMode; + char *pe_Link; + char pe_Name[1]; + }; + +#define pe_Left pe_Childs[0] +#define pe_Right pe_Childs[1] + +typedef void PListEntryFunc(PListEntry *,FILE *); + +#define PLIST_ORDER_FORWARD 0 +#define PLIST_ORDER_BACKWARD 1 + +PListEntry *InsertPListEntry(PListEntry **Tree,char *Name) + +{ + PListEntry *Node; + + while ((Node=*Tree)!=NULL) + Tree=&((strcmp(Name,Node->pe_Name)<0)?Node->pe_Left:Node->pe_Right); + + if ((Node=malloc(sizeof(PListEntry)+strlen(Name)))==NULL) + { + perror(__progname); + exit(EXIT_FAILURE); + } + + Node->pe_Left=NULL; + Node->pe_Right=NULL; + Node->pe_DirEmpty=FALSE; + Node->pe_Link=NULL; + (void)strcpy(Node->pe_Name,Name); + + return *Tree=Node; +} + +PListEntry *FindPListEntry(PListEntry *Tree,char *Name) + +{ + while (Tree!=NULL) + { + int Result; + + if ((Result=strcmp(Name,Tree->pe_Name))==0) break; + Tree=(Result<0)?Tree->pe_Left:Tree->pe_Right; + } + + return Tree; +} + +void PListEntryFile(PListEntry *Node,FILE *Out) + +{ + (void)fputs(Node->pe_Name,Out); + (void)fputc('\n',Out); +} + +void PListEntryLink(PListEntry *Node,FILE *Out) + +{ + (void)fprintf(Out,"@exec ln -fs %s %%D/%s\n",Node->pe_Link,Node->pe_Name); + (void)fprintf(Out,"@unexec rm -f %%D/%s\n",Node->pe_Name); +} + +void PListEntryMakeDir(PListEntry *Node,FILE *Out) + +{ + if (Node->pe_DirEmpty) + (void)fprintf(Out, + "@exec mkdir -m %o -p %%D/%s\n", + Node->pe_DirMode, + Node->pe_Name); +} + +void PListEntryRemoveDir(PListEntry *Node,FILE *Out) + +{ + (void)fprintf(Out,"@dirrm %s\n",Node->pe_Name); +} + +void ProcessPList(PListEntry *Tree,PListEntryFunc Func,int Order,FILE *Out) + +{ + while (Tree!=NULL) + { + if (Tree->pe_Childs[Order]!=NULL) + ProcessPList(Tree->pe_Childs[Order],Func,Order,Out); + Func(Tree,Out); + Tree=Tree->pe_Childs[1-Order]; + } +} + +char **ArrayAdd(char **Array,char *String) + +{ + int Old; + + Old=0; + if (Array!=NULL) while (Array[Old]!=NULL) Old++; + if ((Array=realloc(Array,sizeof(char *)*(Old+2)))==NULL) return NULL; + + Array[Old++]=String; + Array[Old]=NULL; + + return Array; +} + +void Usage(void) + +{ + (void)fprintf(stderr, + "Usage: %s [-d directory] [-f packlist] [[-i ignorepath] ...]\n" + " [-p prefix] rpmfile [...]\n", + __progname); + exit(EXIT_FAILURE); +} + +int SkipAndAlign(gzFile In,long Skip) + +{ + z_off_t Pos,NewPos; + + if ((Pos=gztell(In))<0) return FALSE; + + NewPos=(Pos+Skip+3)&(~3); + return ((Pos==NewPos)||(gzseek(In,NewPos,SEEK_SET)==NewPos)); +} + +char *GetData(gzFile In,long Length) + +{ + char *Ptr; + + if ((Ptr=malloc(Length+1))!=NULL) + { + if (GZREAD(In,Ptr,Length)&&SkipAndAlign(In,0)) + { + Ptr[Length]='\0'; + return Ptr; + } + free(Ptr); + } + + return NULL; +} + +int GetCPIOHeader(gzFile In,long *Fields,char **Name) + +{ + char Buffer[CPIO_NUM_HEADERS*CPIO_FIELD_LENGTH]; + char *Ptr; + int Index; + long Value; + + *Name=NULL; + + if (!GZREAD(In,Buffer,sizeof(CPIOMagic))) return FALSE; + if (memcmp(Buffer,CPIOMagic,sizeof(CPIOMagic))!=0) return FALSE; + + if (gzread(In,Buffer,sizeof(Buffer))!=sizeof(Buffer)) return FALSE; + Ptr=Buffer; + Index=sizeof(Buffer); + Value=0; + while (Index-->0) + { + Value<<=4; + if ((*Ptr>='0')&&(*Ptr<='9')) Value+=(long)(*Ptr++-'0'); + else + if ((*Ptr>='A')&&(*Ptr<='F')) Value+=(long)(*Ptr++-'A')+10; + else + if ((*Ptr>='a')&&(*Ptr<='f')) Value+=(long)(*Ptr++-'a')+10; + else return FALSE; + + if ((Index%CPIO_FIELD_LENGTH)==0) + { + *Fields++=Value; + Value=0; + } + } + + Value=Fields[CPIO_HDR_NAMESIZE-CPIO_NUM_HEADERS]; + if ((*Name=GetData(In,Value))==NULL) return FALSE; + return ((*Name)[Value-1]=='\0'); +} + +mode_t ConvertMode(long CPIOMode) + +{ + mode_t Mode; + int Index; + + Mode=0; + Index=0; + while (ModeMapTab[Index].mm_CPIOMode!=0) + { + if ((CPIOMode&ModeMapTab[Index].mm_CPIOMode)!=0) + Mode|=ModeMapTab[Index].mm_SysMode; + Index++; + } + + return Mode; +} + +int MakeTargetDir(char *Name,PListEntry **Dirs,int MarkNonEmpty) + +{ + char *Basename; + PListEntry *Dir; + struct stat Stat; + int Result; + + if ((Basename=strrchr(Name,'/'))==NULL) return TRUE; + + *Basename='\0'; + if ((Dir=FindPListEntry(*Dirs,Name))!=NULL) + { + *Basename='/'; + Dir->pe_DirEmpty=!MarkNonEmpty; + return TRUE; + } + + if (!MakeTargetDir(Name,Dirs,TRUE)) + { + *Basename='/'; + return FALSE; + } + + if (stat(Name,&Stat)==0) Result=S_ISDIR(Stat.st_mode); + else + if (errno!=ENOENT) Result=FALSE; + else + if ((Result=(mkdir(Name,S_IRWXU|S_IRWXG|S_IRWXO)==0))) + InsertPListEntry(Dirs,Name)->pe_DirMode=S_IRWXU|S_IRWXG|S_IRWXO; + + *Basename='/'; + return Result; +} + +char *StrCat(char *Prefix,char *Suffix) + +{ + int Length; + char *Str; + + Length=strlen(Prefix); + if ((Str=malloc(Length+strlen(Suffix)+1))!=NULL) + { + (void)memcpy(Str,Prefix,Length); + (void)strcpy(&Str[Length],Suffix); + } + return Str; +} + +int MakeDir(char *Name,mode_t Mode,int *OldDir) + +{ + struct stat Stat; + + *OldDir=FALSE; + if (mkdir(Name,Mode)==0) return TRUE; + + if ((errno!=EEXIST)|| + (lstat(Name,&Stat)<0)|| + !S_ISDIR(Stat.st_mode)) return FALSE; + + *OldDir=TRUE; + return TRUE; +} + +int MakeSymLink(char *Link,char *Name) + +{ + struct stat Stat; + + if (symlink(Link,Name)==0) return TRUE; + + if ((errno!=EEXIST)|| + (lstat(Name,&Stat)<0)|| + !S_ISLNK(Stat.st_mode)) return FALSE; + + return ((unlink(Name)==0)&&(symlink(Link,Name)==0)); +} + +int WriteFile(gzFile In,char *Name,mode_t Mode,long Length) + +{ + int Out; + struct stat Stat; + static void *Buffer=NULL; + static long BufferSize=0; + + if (lstat(Name,&Stat)==0) + if (!S_ISREG(Stat.st_mode)||(unlink(Name)<0)) return FALSE; + + if (Buffer==NULL) + { + BufferSize=sysconf(_SC_PAGESIZE)*256; + if ((Buffer=malloc(BufferSize))==NULL) return FALSE; + } + + if ((Out=open(Name,O_WRONLY|O_CREAT,Mode))<=0) return FALSE; + + while (Length>0) + { + long Chunk; + + Chunk=(Length>BufferSize)?BufferSize:Length; + if (!GZREAD(In,Buffer,Chunk)) break; + if (write(Out,Buffer,Chunk)!=Chunk) break; + Length-=Chunk; + } + + if ((close(Out)==0)&&(Length==0)) return SkipAndAlign(In,0); + + (void)unlink(Name); + return FALSE; +} + +int main(int argc,char **argv) + +{ + FILE *PList; + char **Ignore,*Prefix; + int Opt,Index,FD,IsSource; + PListEntry *Files,*Links,*Dirs; + Header Hdr; + gzFile In; + + PList=NULL; + Ignore=NULL; + Prefix=NULL; + while ((Opt=getopt(argc,argv,"d:f:i:p:"))!=-1) + switch (Opt) + { + case 'f': + if (PList!=NULL) (void)fclose(PList); + if ((PList=fopen(optarg,"a"))==NULL) + { + perror(optarg); + return EXIT_FAILURE; + } + break; + case 'i': + if ((Ignore=ArrayAdd(Ignore,optarg))==NULL) + { + perror(__progname); + exit(EXIT_FAILURE); + } + break; + case 'd': + if (chdir(optarg)) + { + perror(optarg); + return EXIT_FAILURE; + } + break; + case 'p': + Prefix=optarg; + break; + default: + Usage(); + } + + if (Prefix!=NULL) + { + int Length; + + Length=strlen(Prefix); + if (Length==0) Prefix=NULL; + else + if ((Prefix[Length-1]!='/')&&((Prefix=StrCat(Prefix,"/"))==NULL)) + { + perror(__progname); + exit(EXIT_FAILURE); + } + } + + argc-=optind; + argv+=optind; + if (argc==0) Usage(); + + Files=NULL; + Links=NULL; + Dirs=NULL; + for (Index=0; Indexpe_DirEmpty=TRUE; + Dir->pe_DirMode=Mode; + } + break; + } + case C_ISLNK: + { + char *Link; + struct stat Stat; + + if ((Link=GetData(In,Length))==NULL) + { + (void)fprintf(stderr,"%s: error in cpio file.\n",argv[Index]); + return EXIT_FAILURE; + } + + if (!MakeTargetDir(Name,&Dirs,FALSE)) + { + (void)fprintf(stderr, + "%s: can't create parent directories for \"%s\".\n", + argv[Index], + Name); + return EXIT_FAILURE; + } + + if (*Link=='/') + { + char *Ptr; + + (void)strcpy(Link,Link+1); + Ptr=Name; + if (Prefix!=NULL) Ptr+=strlen(Prefix); + while ((Ptr=strchr(Ptr,'/'))!=NULL) + { + char *NewLink; + + if ((NewLink=StrCat("../",Link))==NULL) + { + perror(__progname); + return EXIT_FAILURE; + } + free(Link); + Link=NewLink; + + Ptr++; + } + } + if (!MakeSymLink(Link,Name)) + { + (void)fprintf(stderr, + "%s: can't create symbolic link \"%s\".\n", + argv[Index], + Name); + return EXIT_FAILURE; + } + + if ((stat(Name,&Stat)==0)&&S_ISREG(Stat.st_mode)) + { + (void)InsertPListEntry(&Files,Name); + (void)MakeTargetDir(Name,&Dirs,TRUE); + } + else InsertPListEntry(&Links,Name)->pe_Link=Link; + break; + } + case C_ISREG: + if (!MakeTargetDir(Name,&Dirs,TRUE)) + { + (void)fprintf(stderr, + "%s: can't create parent directories for \"%s\".\n", + argv[Index], + Name); + return EXIT_FAILURE; + } + if (!WriteFile(In,Name,Mode,Length)) + { + (void)fprintf(stderr, + "%s: can't write file \"%s\".\n", + argv[Index], + Name); + return EXIT_FAILURE; + } + (void)InsertPListEntry(&Files,Name); + break; + default: + if ((Length>0)&&(gzseek(In,(Length+3)&(~3),SEEK_CUR)<0)) break; + } + + free(Name); + } + + (void)gzclose(In); + (void)close(FD); + } + + if (PList!=NULL) + { + ProcessPList(Files,PListEntryFile,PLIST_ORDER_FORWARD,PList); + ProcessPList(Dirs,PListEntryMakeDir,PLIST_ORDER_FORWARD,PList); + ProcessPList(Links,PListEntryLink,PLIST_ORDER_FORWARD,PList); + ProcessPList(Dirs,PListEntryRemoveDir,PLIST_ORDER_BACKWARD,PList); + (void)fclose(PList); + } + + return EXIT_SUCCESS; +} + diff --git a/emulators/suse_base/scripts/rpm2pkg.sh b/emulators/suse_base/scripts/rpm2pkg.sh deleted file mode 100755 index 1ce74db2a50..00000000000 --- a/emulators/suse_base/scripts/rpm2pkg.sh +++ /dev/null @@ -1,77 +0,0 @@ -#!/bin/sh -export PATH=/bin:/usr/bin:@@PREFIX@@/bin - -TMPDIR=/tmp/.rpm.$$.`date +%s` -LIST=$TMPDIR/LIST -DIRS=$TMPDIR/DIRS -FILES=$TMPDIR/FILES -LINKS=$TMPDIR/LINKS - -if ! rm -rf $TMPDIR -then - exit 1 -fi -if ! mkdir -p $TMPDIR/@@EMULSUBDIR@@ -then - exit 1 -fi - -touch $LIST -for RPM -do - rpm2cpio $RPM | (cd @@EMULDIR@@; @@PAX@@ -r -v 2>>$LIST) -done - -touch $DIRS $LINKS -cd @@PREFIX@@ -grep -v ^pax:\ $LIST | @@AWK@@ '{print("@@EMULSUBDIR@@/"$1)}' | -(while read ENTRY - do - if [ -L "$ENTRY" ] - then - set - `file $ENTRY` - shift `expr $# - 1`; - case $1 in - /* ) - TARGET=`echo $1 | cut -c 2-` - DIR=`dirname $ENTRY` - while [ $DIR != @@EMULSUBDIR@@ ] - do - TARGET=../$TARGET - DIR=`dirname $DIR` - done - unset DIR - rm $ENTRY - ln -s $TARGET $ENTRY - ;; - * ) - TARGET=$1 - esac - if cd `dirname $ENTRY` && test -f $TARGET - then - echo $ENTRY - else - echo "@exec ln -s $TARGET %D/$ENTRY" >>$LINKS - echo "@unexec rm -f %D/$ENTRY" >>$LINKS - fi - cd @@PREFIX@@ - else - if [ -f "$ENTRY" ] - then - echo "$ENTRY" - else - if [ -d "$ENTRY" ] - then - echo "$ENTRY" >>$DIRS - fi - fi - fi - done) >$FILES - -cat $FILES -sort $DIRS | awk '{print("@exec mkdir -p %D/"$1)}' -cat $LINKS -sort -r $DIRS | awk '{print("@unexec rmdir %D/"$1" >/dev/null 2>&1 || true")}' - -rm -rf $TMPDIR -exit 0 diff --git a/emulators/suse_compat/Makefile b/emulators/suse_compat/Makefile index 94192440334..04119900213 100644 --- a/emulators/suse_compat/Makefile +++ b/emulators/suse_compat/Makefile @@ -1,38 +1,20 @@ -# $NetBSD: Makefile,v 1.3 1999/05/24 21:27:14 tron Exp $ +# $NetBSD: Makefile,v 1.4 1999/09/19 23:58:41 tron Exp $ DISTNAME= compat -PKGNAME= suse_compat-6.1 +PKGNAME= suse_compat-6.1p1 CATEGORIES= emulators -MASTER_SITES= ftp://ftp.suse.com/pub/suse/i386/6.1/suse/a2/ \ - ftp://ftp.cs.unm.edu/mirrors/SuSE61/suse/a2/ +MASTER_SITES= ${MASTER_SITE_SUSE:=a2/} EXTRACT_SUFX= .rpm -ONLY_FOR_PLATFORM= NetBSD-*-i386 MAINTAINER= tron@netbsd.org HOMEPAGE= http://www.suse.com/ -DEPENDS= suse_base-6.1:../suse_base - -DIST_SUBDIR= suse -MIRROR_DISTFILE= no +DEPENDS+= suse_base-6.1p1:../suse_base EXTRACT_ONLY= # empty NO_BUILD= yes -NO_WRKSUBDIR= yes -MANCOMPRESSED= yes PLIST_SRC= ${WRKDIR}/PLIST_DYNAMIC -EMULSUBDIR= emul/linux -EMULDIR= ${PREFIX}/${EMULSUBDIR} -SBINDIR= ${PREFIX}/sbin - -do-install: - cd ${_DISTDIR} && \ - ${SBINDIR}/rpm2pkg ${DISTFILES} >${PLIST_SRC} - @${ECHO} "@exec %D/${EMULSUBDIR}/sbin/ldconfig -r %D/${EMULSUBDIR}" >>${PLIST_SRC} - ${EMULDIR}/sbin/ldconfig -r ${EMULDIR} || ${TRUE} - -show-shlib-type: - @${ECHO} linux-${MACHINE_ARCH} +RPMFILES= ${DISTNAME}${EXTRACT_SUFX} -.include "../../mk/bsd.pkg.mk" +.include "../suse_linux/suse.mk" diff --git a/emulators/suse_devel/Makefile b/emulators/suse_devel/Makefile index 086ae19b58d..b7ca036cff2 100644 --- a/emulators/suse_devel/Makefile +++ b/emulators/suse_devel/Makefile @@ -1,39 +1,20 @@ -# $NetBSD: Makefile,v 1.1.1.1 1999/08/24 21:24:57 tron Exp $ +# $NetBSD: Makefile,v 1.2 1999/09/19 23:58:41 tron Exp $ -DISTNAME= suse_devel-6.1 -CATEGORIES= emulators devel -MASTER_SITES= ftp://ftp.suse.com/pub/suse/i386/6.1/suse/d1/ \ - ftp://ftp.cs.unm.edu/mirrors/SuSE61/suse/d1/ -DISTFILES= bin86.rpm binutils.rpm egcs.rpm g77.rpm gpp.rpm \ - libc.rpm linclude.rpm make.rpm +DISTNAME= suse_devel-6.1p1 +CATEGORIES= emulators +MASTER_SITES= ${MASTER_SITE_SUSE:=x1/} +DISTFILES= ${RPMFILES} -MAINTAINER= wennmach@geo.Uni-Koeln.DE +MAINTAINER= tron@netbsd.org HOMEPAGE= http://www.suse.com/ -DEPENDS= suse_base-6.1:../suse_base - -ONLY_FOR_PLATFORM= NetBSD-*-i386 - -DIST_SUBDIR= suse -MIRROR_DISTFILE= no +DEPENDS+= suse_base-6.1p1:../suse_base EXTRACT_ONLY= # empty -NO_BUILD= yes -NO_WRKSUBDIR= yes -MANCOMPRESSED= yes +NO_BUILD= yes PLIST_SRC= ${WRKDIR}/PLIST_DYNAMIC -EMULSUBDIR= emul/linux -EMULDIR= ${PREFIX}/${EMULSUBDIR} -SBINDIR= ${PREFIX}/sbin - -do-install: - cd ${_DISTDIR} && \ - ${SBINDIR}/rpm2pkg ${DISTFILES} >${PLIST_SRC} - @${ECHO} "@exec %D/${EMULSUBDIR}/sbin/ldconfig -r %D/${EMULSUBDIR}" >>${PLIST_SRC} - ${EMULDIR}/sbin/ldconfig -r ${EMULDIR} || ${TRUE} - -show-shlib-type: - @${ECHO} linux-${MACHINE_ARCH} +RPMFILES= bin86.rpm binutils.rpm egcs.rpm g77.rpm gpp.rpm \ + libc.rpm linclude.rpm make.rpm -.include "../../mk/bsd.pkg.mk" +.include "../suse_linux/suse.mk" diff --git a/emulators/suse_libc5/Makefile b/emulators/suse_libc5/Makefile index 08332c31a8e..bab495853ed 100644 --- a/emulators/suse_libc5/Makefile +++ b/emulators/suse_libc5/Makefile @@ -1,38 +1,23 @@ -# $NetBSD: Makefile,v 1.8 1999/05/24 21:27:14 tron Exp $ +# $NetBSD: Makefile,v 1.9 1999/09/19 23:58:42 tron Exp $ DISTNAME= shlibs5 -PKGNAME= suse_libc5-6.1 +PKGNAME= suse_libc5-6.1p1 CATEGORIES= emulators -MASTER_SITES= ftp://ftp.suse.com/pub/suse/i386/6.1/suse/a1/ \ - ftp://ftp.cs.unm.edu/mirrors/SuSE61/suse/a1/ +MASTER_SITES= ${MASTER_SITE_SUSE:=a1/} EXTRACT_SUFX= .rpm -ONLY_FOR_PLATFORM= NetBSD-*-i386 MAINTAINER= tron@netbsd.org HOMEPAGE= http://www.suse.com/ -DEPENDS= suse_base-6.1:../suse_base - -DIST_SUBDIR= suse -MIRROR_DISTFILE= no +DEPENDS+= suse_compat-6.1p1:../suse_compat EXTRACT_ONLY= # empty NO_BUILD= yes -NO_WRKSUBDIR= yes -MANCOMPRESSED= yes PLIST_SRC= ${WRKDIR}/PLIST_DYNAMIC -EMULSUBDIR= emul/linux -EMULDIR= ${PREFIX}/${EMULSUBDIR} -SBINDIR= ${PREFIX}/sbin - -do-install: - cd ${_DISTDIR} && \ - ${SBINDIR}/rpm2pkg ${DISTFILES} >${PLIST_SRC} - @${ECHO} "@exec %D/${EMULSUBDIR}/sbin/ldconfig -r %D/${EMULSUBDIR}" >>${PLIST_SRC} - ${EMULDIR}/sbin/ldconfig -r ${EMULDIR} || ${TRUE} +RPMFILES= ${DISTNAME}${EXTRACT_SUFX} -show-shlib-type: - @${ECHO} linux-${MACHINE_ARCH} +post-install: + ${ECHO} ${EMULSUBDIR}/usr/lib/libncurses.so.2.1 >>${PLIST_SRC} -.include "../../mk/bsd.pkg.mk" +.include "../suse_linux/suse.mk" diff --git a/emulators/suse_linux/Makefile b/emulators/suse_linux/Makefile index 98d9464e817..04b4f7df301 100644 --- a/emulators/suse_linux/Makefile +++ b/emulators/suse_linux/Makefile @@ -1,17 +1,15 @@ -# $NetBSD: Makefile,v 1.4 1999/05/24 21:27:14 tron Exp $ +# $NetBSD: Makefile,v 1.5 1999/09/19 23:58:42 tron Exp $ -DISTNAME= suse_linux-6.1 +DISTNAME= suse_linux-6.1p1 CATEGORIES= emulators MASTER_SITES= # empty DISTFILES= # empty -ONLY_FOR_PLATFORM= NetBSD-*-i386 MAINTAINER= tron@netbsd.org HOMEPAGE= http://www.suse.com/ -DEPENDS= suse_compat-6.1:../suse_compat \ - suse_libc5-6.1:../suse_libc5 \ - suse_xforms-6.1:../suse_xforms +DEPENDS+= suse_libc5-6.1p1:../suse_libc5 \ + suse_xforms-6.1p1:../suse_xforms EXTRACT_ONLY= # empty NO_BUILD= yes diff --git a/emulators/suse_linux/suse.mk b/emulators/suse_linux/suse.mk new file mode 100644 index 00000000000..f06a4d12ae2 --- /dev/null +++ b/emulators/suse_linux/suse.mk @@ -0,0 +1,41 @@ +# $NetBSD: suse.mk,v 1.1 1999/09/19 23:58:42 tron Exp $ + +MASTER_SITE_SUSE= ftp://ftp.suse.com/pub/suse/i386/6.1/suse/ \ + ftp://ftp.cs.unm.edu/mirrors/SuSE61/suse/ + +DIST_SUBDIR= suse +MIRROR_DISTFILE= no + +WRKSRC= ${WRKDIR} +MANCOMPRESSED= yes + +EMULSUBDIR= emul/linux +EMULDIR= ${PREFIX}/${EMULSUBDIR} +EMULLDCONFIG= + +RPM2PKG= ${PREFIX}/sbin/rpm2pkg + +RPM2PKGARGS= -d ${PREFIX} -f ${PLIST_SRC} -p ${EMULSUBDIR} +.for TEMP in ${RPMIGNOREPATH} +RPM2PKGARGS+= -i ${TEMP} +.endfor +.for TEMP in ${RPMFILES} +RPM2PKGARGS+= ${DISTDIR}/${DIST_SUBDIR}/${TEMP} +.endfor + +.if !target(do-install) +do-install: + @${RM} -f ${PLIST_SRC} + ${RPM2PKG} ${RPM2PKGARGS} + @if ${GREP} -q 'lib.*\.so' ${PLIST_SRC}; then \ + ${ECHO_MSG} "===> [Automatic Linux shared object handling]"; \ + ${EMULDIR}/sbin/ldconfig -r ${EMULDIR}; \ + ${ECHO} "@exec %D/${EMULSUBDIR}/sbin/ldconfig -r %D/${EMULSUBDIR}" >>${PLIST_SRC}; \ + ${ECHO} "@unexec %D/${EMULSUBDIR}/sbin/ldconfig -r %D/${EMULSUBDIR} 2>/dev/null" >>${PLIST_SRC}; \ + fi +.endif + +show-shlib-type: + @${ECHO} linux-${MACHINE_ARCH} + +.include "../../mk/bsd.pkg.mk" diff --git a/emulators/suse_x11/Makefile b/emulators/suse_x11/Makefile index 88aed508ef0..6b8df85afb5 100644 --- a/emulators/suse_x11/Makefile +++ b/emulators/suse_x11/Makefile @@ -1,37 +1,19 @@ -# $NetBSD: Makefile,v 1.6 1999/05/24 21:27:14 tron Exp $ +# $NetBSD: Makefile,v 1.7 1999/09/19 23:58:43 tron Exp $ -DISTNAME= suse_x11-6.1 +DISTNAME= suse_x11-6.1p1 CATEGORIES= emulators -MASTER_SITES= ftp://ftp.suse.com/pub/suse/i386/6.1/suse/x1/ \ - ftp://ftp.cs.unm.edu/mirrors/SuSE61/suse/x1/ -DISTFILES= xshared.rpm xpm.rpm -ONLY_FOR_PLATFORM= NetBSD-*-i386 +MASTER_SITES= ${MASTER_SITE_SUSE:=x1/} +DISTFILES= ${RPMFILES} MAINTAINER= tron@netbsd.org HOMEPAGE= http://www.suse.com/ -DEPENDS= suse_base-6.1:../suse_base - -DIST_SUBDIR= suse -MIRROR_DISTFILE= no +DEPENDS+= suse_base-6.1p1:../suse_base EXTRACT_ONLY= # empty NO_BUILD= yes -NO_WRKSUBDIR= yes -MANCOMPRESSED= yes PLIST_SRC= ${WRKDIR}/PLIST_DYNAMIC -EMULSUBDIR= emul/linux -EMULDIR= ${PREFIX}/${EMULSUBDIR} -SBINDIR= ${PREFIX}/sbin - -do-install: - cd ${_DISTDIR} && \ - ${SBINDIR}/rpm2pkg ${DISTFILES} >${PLIST_SRC} - @${ECHO} "@exec %D/${EMULSUBDIR}/sbin/ldconfig -r %D/${EMULSUBDIR}" >>${PLIST_SRC} - ${EMULDIR}/sbin/ldconfig -r ${EMULDIR} || ${TRUE} - -show-shlib-type: - @${ECHO} linux-${MACHINE_ARCH} +RPMFILES= xshared.rpm xpm.rpm -.include "../../mk/bsd.pkg.mk" +.include "../suse_linux/suse.mk" diff --git a/emulators/suse_xforms/Makefile b/emulators/suse_xforms/Makefile index 14eeabe53ea..f2b37310396 100644 --- a/emulators/suse_xforms/Makefile +++ b/emulators/suse_xforms/Makefile @@ -1,38 +1,20 @@ -# $NetBSD: Makefile,v 1.3 1999/05/24 21:27:14 tron Exp $ +# $NetBSD: Makefile,v 1.4 1999/09/19 23:58:43 tron Exp $ DISTNAME= xforms -PKGNAME= suse_xforms-6.1 +PKGNAME= suse_xforms-6.1p1 CATEGORIES= emulators -MASTER_SITES= ftp://ftp.suse.com/pub/suse/i386/6.1/suse/xdev1/ \ - ftp://ftp.cs.unm.edu/mirrors/SuSE61/suse/xdev1/ +MASTER_SITES= ${MASTER_SITE_SUSE:=xdev1/} EXTRACT_SUFX= .rpm -ONLY_FOR_PLATFORM= NetBSD-*-i386 MAINTAINER= tron@netbsd.org HOMEPAGE= http://www.suse.com/ -DEPENDS= suse_x11-6.1:../suse_x11 - -DIST_SUBDIR= suse -MIRROR_DISTFILE= no +DEPENDS+= suse_x11-6.1p1:../suse_x11 EXTRACT_ONLY= # empty NO_BUILD= yes -NO_WRKSUBDIR= yes -MANCOMPRESSED= yes PLIST_SRC= ${WRKDIR}/PLIST_DYNAMIC -EMULSUBDIR= emul/linux -EMULDIR= ${PREFIX}/${EMULSUBDIR} -SBINDIR= ${PREFIX}/sbin - -do-install: - cd ${_DISTDIR} && \ - ${SBINDIR}/rpm2pkg ${DISTFILES} >${PLIST_SRC} - @${ECHO} "@exec %D/${EMULSUBDIR}/sbin/ldconfig -r %D/${EMULSUBDIR}" >>${PLIST_SRC} - ${EMULDIR}/sbin/ldconfig -r ${EMULDIR} || ${TRUE} - -show-shlib-type: - @${ECHO} linux-${MACHINE_ARCH} +RPMFILES= ${DISTNAME}${EXTRACT_SUFX} -.include "../../mk/bsd.pkg.mk" +.include "../suse_linux/suse.mk" -- cgit v1.2.3