Date: Monday, December 23, 2019 @ 07:31:35 Author: arojas Revision: 538949
Port build script to python3 Added: zn_poly/trunk/zn_poly-python3.patch Modified: zn_poly/trunk/PKGBUILD -----------------------+ PKGBUILD | 17 + zn_poly-python3.patch | 433 ++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 445 insertions(+), 5 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2019-12-23 02:31:56 UTC (rev 538948) +++ PKGBUILD 2019-12-23 07:31:35 UTC (rev 538949) @@ -9,13 +9,20 @@ url="https://gitlab.com/sagemath/zn_poly/" license=(GPL) depends=(gmp) -makedepends=(python2) -source=("https://gitlab.com/sagemath/zn_poly/-/archive/$pkgver/$pkgname-$pkgver.tar.gz") -sha256sums=('d11aea5646cd72ea44ce8dd0d996cf2ea498e882ed96304a74481c4eb6e01093') +makedepends=(python) +source=("https://gitlab.com/sagemath/zn_poly/-/archive/$pkgver/$pkgname-$pkgver.tar.gz" + zn_poly-python3.patch) +sha256sums=('d11aea5646cd72ea44ce8dd0d996cf2ea498e882ed96304a74481c4eb6e01093' + 'c72736011693c9d603f0f4f8e58208b7e7923747fac2d63aadc3fec13f3d9e77') +prepare() { + cd $pkgname-$pkgver + patch -p1 -i ../zn_poly-python3.patch # Fix build with python3 +} + build() { cd $pkgname-$pkgver - python2 makemakefile.py --prefix=/usr --cflags="$CFLAGS -fPIC" --cxxflags="$CXXFLAGS" --ldflags="$LDFLAGS" > makefile + python makemakefile.py --prefix=/usr --cflags="$CFLAGS -fPIC" --cxxflags="$CXXFLAGS" --ldflags="$LDFLAGS" > makefile make make libzn_poly.so } @@ -22,7 +29,7 @@ package() { cd $pkgname-$pkgver - python2 makemakefile.py --prefix="$pkgdir"/usr > makefile + python makemakefile.py --prefix="$pkgdir"/usr > makefile make install # Install shared library cp libzn_poly.so "$pkgdir"/usr/lib Added: zn_poly-python3.patch =================================================================== --- zn_poly-python3.patch (rev 0) +++ zn_poly-python3.patch 2019-12-23 07:31:35 UTC (rev 538949) @@ -0,0 +1,433 @@ +commit f2bada31fd09f09c744d8ff0e1fab82c53dbf830 +Author: Jeroen Demeyer <j.deme...@ugent.be> +Date: Tue Feb 12 15:08:39 2019 +0100 + + Make makemakefile.py compatible with Python 3 + +diff --git a/makemakefile.py b/makemakefile.py +index fa2b851..acb6084 100644 +--- a/makemakefile.py ++++ b/makemakefile.py +@@ -147,213 +147,221 @@ cpp_libs = libs + " -L" + ntl_lib_dir + " -lntl" + + import time + +-print "#" +-print "# Do not edit directly -- this file was auto-generated" +-print "# by makemakefile.py on " + time.strftime("%a, %d %b %Y %H:%M:%S +0000", +- time.gmtime()) +-print "#" +-print "# (makemakefile.py patched for Sage, 04/2012)" +-print +- +-print +-print "CC ?= gcc" +-print "CPP ?= cpp" +-print "CFLAGS = " + cflags +-print "CPPFLAGS = " + cppflags +-print "LDFLAGS = " + ldflags +-print "INCLUDES = " + includes # These are options to the C preprocessor. +-print "LIBS = " + libs # These are linker options passed to the compiler. +-print +-print "AR ?= ar" +-print "RANLIB ?= ranlib" +-print +-print "SHARED_FLAG ?= -shared" +-print "SONAME_FLAG ?= -soname" # '-h' for the Sun/Solaris linker +- +-print +-print "CXX ?= g++" # The C++ compiler. +-print "CXXFLAGS = " + cxxflags # Options passed to the C++ compiler. +-print "CPP_INCLUDES = " + cpp_includes +-print "CPP_LIBS = " + cpp_libs +- +-print +-print "HEADERS = " + " ".join(install_headers + other_headers) +-print "LIBOBJS = " + " ".join([x + ".o" for x in lib_modules]) +-print "TESTOBJS = " + " ".join([x + "-DEBUG.o" for x in +- lib_modules + test_modules + testprof_modules]) +-print "PROFOBJS = " + " ".join([x + ".o" for x in +- lib_modules + prof_modules + noncpp_prof_modules + testprof_modules]) +-print "CPP_PROFOBJS = " + " ".join([x + ".o" for x in +- lib_modules + prof_modules + cpp_prof_modules + testprof_modules]) +-print "TUNEOBJS = " + " ".join([x + ".o" for x in +- lib_modules + tune_modules + testprof_modules + prof_modules + +- noncpp_prof_modules if x not in ("src/tuning", "profile/prof_main")]) +-print "ZN_POLY_TUNING = " + str(int(zn_poly_tuning)) +-print "ZN_POLY_VERSION = " + version +-print "ZN_POLY_ABI_VERSION = " + abi_version +- +-print +-print "all: libzn_poly.a" +-print +-print "test: test/test" +-print "tune: tune/tune" +-print +-print "check: test" +-print "\ttest/test -quick all" +-print +-print "install:" +-print "\tmkdir -p %s/include/zn_poly" % prefix +-print "\tmkdir -p %s/lib" % prefix +-print "\tcp libzn_poly.a %s/lib" % prefix +-print "\tcp include/zn_poly.h %s/include/zn_poly" % prefix +-print "\tcp include/wide_arith.h %s/include/zn_poly" % prefix +-print +-print "clean:" +-print "\trm -f *.o" +-print "\trm -f test/*.o" +-print "\trm -f profile/*.o" +-print "\trm -f tune/*.o" +-print "\trm -f src/tuning.c" +-print "\trm -f src/*.o" +-print "\trm -f demo/bernoulli/*.o" +-print "\trm -f libzn_poly.a" +-print "\trm -f libzn_poly.dylib" +-print "\trm -f libzn_poly*.so*" +-print "\trm -f libzn_poly*.dll.a" +-print "\trm -f cygzn_poly.dll" +-print "\trm -f test/test" +-print "\trm -f tune/tune" ++now = time.strftime("%a, %d %b %Y %H:%M:%S +0000", time.gmtime()) ++print( ++"""# ++# Do not edit directly -- this file was auto-generated ++# by {} on {} ++# ++# (makemakefile.py patched for Sage, 04/2012) ++""".format(__file__, now)) ++ ++ ++print( ++""" ++CC ?= gcc ++CPP ?= cpp ++CFLAGS = {} ++CPPFLAGS = {} ++LDFLAGS = {} ++INCLUDES = {} # These are options to the C preprocessor. ++LIBS = {} # These are linker options passed to the compiler. ++ ++AR ?= ar ++RANLIB ?= ranlib ++ ++SHARED_FLAG ?= -shared ++SONAME_FLAG ?= -soname # '-h' for the Sun/Solaris linker ++""".format(cflags, cppflags, ldflags, includes, libs)) ++ ++ ++print( ++"""CXX ?= g++ # The C++ compiler. ++CXXFLAGS = {} # Options passed to the C++ compiler. ++CPP_INCLUDES = {} ++CPP_LIBS = {} ++""".format(cxxflags, cpp_includes, cpp_libs)) ++ ++ ++print( ++"""HEADERS = {} ++LIBOBJS = {} ++TESTOBJS = {} ++PROFOBJS = {} ++CPP_PROFOBJS = {} ++TUNEOBJS = {}""".format( ++ " ".join(install_headers + other_headers), ++ " ".join([x + ".o" for x in lib_modules]), ++ " ".join([x + "-DEBUG.o" for x in ++ lib_modules + test_modules + testprof_modules]), ++ " ".join([x + ".o" for x in ++ lib_modules + prof_modules + noncpp_prof_modules + testprof_modules]), ++ " ".join([x + ".o" for x in ++ lib_modules + prof_modules + cpp_prof_modules + testprof_modules]), ++ " ".join([x + ".o" for x in ++ lib_modules + tune_modules + testprof_modules + prof_modules + ++ noncpp_prof_modules if x not in ("src/tuning", "profile/prof_main")]) ++)) ++ ++ ++print( ++"""ZN_POLY_TUNING = {} ++ZN_POLY_VERSION = {} ++ZN_POLY_ABI_VERSION = {} ++""".format(int(zn_poly_tuning), version, abi_version)) ++ ++ ++print( ++"""all: libzn_poly.a ++ ++test: test/test ++tune: tune/tune ++ ++check: test ++\ttest/test -quick all ++ ++install: ++\tmkdir -p {prefix}/include/zn_poly ++\tmkdir -p {prefix}/lib ++\tcp libzn_poly.a {prefix}/lib ++\tcp include/zn_poly.h {prefix}/include/zn_poly ++\tcp include/wide_arith.h {prefix}/include/zn_poly ++""".format(prefix=prefix)) ++ ++ ++print( ++"""clean: ++\trm -f *.o ++\trm -f test/*.o ++\trm -f profile/*.o ++\trm -f tune/*.o ++\trm -f src/tuning.c ++\trm -f src/*.o ++\trm -f demo/bernoulli/*.o ++\trm -f libzn_poly.a ++\trm -f libzn_poly.dylib ++\trm -f libzn_poly*.so* ++\trm -f libzn_poly*.dll.a ++\trm -f cygzn_poly.dll ++\trm -f test/test ++\trm -f tune/tune""") + for x in prof_progs: +- print "\trm -f " + x +- print "\trm -f " + x + "-ntl" ++ print("\trm -f " + x) ++ print("\trm -f " + x + "-ntl") + for x in demo_progs: +- print "\trm -f " + x +-print +-print "distclean: clean" +-print "\trm -f makefile" +-print +-print "dist: distclean" +-print "\ttar --exclude-vcs --exclude=.gitignore -czf zn_poly-$(ZN_POLY_VERSION).tar.gz *" +- +- +-print +-print +-print "##### library targets" +-print +-print "ifeq ($(ZN_POLY_TUNING), 1)" +-print "src/tuning.c: tune/tune" +-print "\ttune/tune > src/tuning.c" +-print "else" +-print "src/tuning.c: tune/tuning.c" +-print "\tcp tune/tuning.c src/tuning.c" +-print "endif" +-print +-print "libzn_poly.a: $(LIBOBJS)" +-print "\t$(AR) -r libzn_poly.a $(LIBOBJS)" +-print "\t$(RANLIB) libzn_poly.a" +-print +-print "# TODO: Put '-single_module -fPIC -dynamiclib' into $(SHARED_FLAG)" +-print "# and use that; also support $(SO_EXTENSION)..." +-print "libzn_poly.dylib: $(LIBOBJS)" +-print "\t$(CC) $(LDFLAGS) -single_module -fPIC -dynamiclib -o libzn_poly.dylib " \ +- "$(LIBOBJS) $(LIBS)" +-print +-print "# Left for compatibility with previous versions of Sage's 'spkg-install':" +-print "libzn_poly.dylib64: $(LIBOBJS)" +-print "\t$(CC) -m64 -single_module -fPIC -dynamiclib -o libzn_poly.dylib $(LIBOBJS) $(LIBS)" +-print +-print "cygzn_poly.dll: $(LIBOBJS)" +-print "\t$(CC) $(SHARED_FLAG) $(LDFLAGS) " \ +- "-Wl,--out-implib,libzn_poly-$(ZN_POLY_VERSION).dll.a " \ +- "-o cygzn_poly.dll $(LIBOBJS) $(LIBS)" +-print +-print "libzn_poly-$(ZN_POLY_VERSION).dll.a: cygzn_poly.dll" +-print +-print "libzn_poly.dll.a: libzn_poly-$(ZN_POLY_VERSION).dll.a" +-print "\tln -sf libzn_poly-$(ZN_POLY_VERSION).dll.a libzn_poly.dll.a" +-print "\tln -sf libzn_poly-$(ZN_POLY_VERSION).dll.a libzn_poly-$(ZN_POLY_ABI_VERSION).dll.a" +-print +-print "libzn_poly.so: libzn_poly-$(ZN_POLY_VERSION).so" +-print "\tln -sf libzn_poly-$(ZN_POLY_VERSION).so libzn_poly.so" +-print "\tln -sf libzn_poly-$(ZN_POLY_VERSION).so libzn_poly-$(ZN_POLY_ABI_VERSION).so" +- +-print +-print "libzn_poly-$(ZN_POLY_VERSION).so: $(LIBOBJS)" +-print "\t$(CC) $(SHARED_FLAG) $(LDFLAGS) -Wl,-soname,libzn_poly-$(ZN_POLY_ABI_VERSION).so " \ +- "-o libzn_poly-$(ZN_POLY_VERSION).so $(LIBOBJS) $(LIBS)" +- +-print +-print +-print "##### test program" +-print +-print "test/test: $(TESTOBJS) $(HEADERS)" +-print "\t$(CC) -g $(LDFLAGS) -o test/test $(TESTOBJS) $(LIBS)" +- +-print +-print +-print "##### profiling programs" +-print ++ print("\trm -f " + x) ++print( ++""" ++distclean: clean ++\trm -f makefile ++ ++dist: distclean ++\ttar --exclude-vcs --exclude=.gitignore -czf zn_poly-$(ZN_POLY_VERSION).tar.gz * ++ ++ ++##### library targets ++ ++ifeq ($(ZN_POLY_TUNING), 1) ++src/tuning.c: tune/tune ++\ttune/tune > src/tuning.c ++else ++src/tuning.c: tune/tuning.c ++\tcp tune/tuning.c src/tuning.c ++endif ++ ++libzn_poly.a: $(LIBOBJS) ++\t$(AR) -r libzn_poly.a $(LIBOBJS) ++\t$(RANLIB) libzn_poly.a ++ ++# TODO: Put '-single_module -fPIC -dynamiclib' into $(SHARED_FLAG) ++# and use that; also support $(SO_EXTENSION)... ++libzn_poly.dylib: $(LIBOBJS) ++\t$(CC) $(LDFLAGS) -single_module -fPIC -dynamiclib -o libzn_poly.dylib $(LIBOBJS) $(LIBS) ++ ++# Left for compatibility with previous versions of Sage's 'spkg-install': ++libzn_poly.dylib64: $(LIBOBJS) ++\t$(CC) -m64 -single_module -fPIC -dynamiclib -o libzn_poly.dylib $(LIBOBJS) $(LIBS) ++ ++cygzn_poly.dll: $(LIBOBJS) ++\t$(CC) $(SHARED_FLAG) $(LDFLAGS) -Wl,--out-implib,libzn_poly-$(ZN_POLY_VERSION).dll.a -o cygzn_poly.dll $(LIBOBJS) $(LIBS) ++ ++libzn_poly-$(ZN_POLY_VERSION).dll.a: cygzn_poly.dll ++ ++libzn_poly.dll.a: libzn_poly-$(ZN_POLY_VERSION).dll.a ++\tln -sf libzn_poly-$(ZN_POLY_VERSION).dll.a libzn_poly.dll.a ++\tln -sf libzn_poly-$(ZN_POLY_VERSION).dll.a libzn_poly-$(ZN_POLY_ABI_VERSION).dll.a ++ ++libzn_poly.so: libzn_poly-$(ZN_POLY_VERSION).so ++\tln -sf libzn_poly-$(ZN_POLY_VERSION).so libzn_poly.so ++\tln -sf libzn_poly-$(ZN_POLY_VERSION).so libzn_poly-$(ZN_POLY_ABI_VERSION).so ++ ++libzn_poly-$(ZN_POLY_VERSION).so: $(LIBOBJS) ++\t$(CC) $(SHARED_FLAG) $(LDFLAGS) -Wl,-soname,libzn_poly-$(ZN_POLY_ABI_VERSION).so -o libzn_poly-$(ZN_POLY_VERSION).so $(LIBOBJS) $(LIBS) ++ ++ ++##### test program ++ ++test/test: $(TESTOBJS) $(HEADERS) ++\t$(CC) -g $(LDFLAGS) -o test/test $(TESTOBJS) $(LIBS) ++ ++ ++##### profiling programs ++""") ++ + for x in prof_progs: +- print "%s-main.o: %s-main.c $(HEADERS)" % (x, x) +- print "\t$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -DNDEBUG -o %s-main.o -c %s-main.c" \ +- % (x, x) +- print +- print "%s: %s-main.o $(PROFOBJS)" % (x, x) +- print "\t$(CC) $(CFLAGS) $(LDFLAGS) -o %s %s-main.o $(PROFOBJS) $(LIBS)" \ +- % (x, x) +- print +- print "%s-main-ntl.o: %s-main.c $(HEADERS)" % (x, x) +- print "\t$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -DPROFILE_NTL -DNDEBUG " \ +- "-o %s-main-ntl.o -c %s-main.c" % (x, x) +- print +- print "%s-ntl: %s-main-ntl.o $(CPP_PROFOBJS)" % (x, x) +- print "\t$(CXX) $(CXXFLAGS) $(LDFLAGS) -o %s-ntl %s-main-ntl.o " \ +- "$(CPP_PROFOBJS) $(CPP_LIBS)" % (x, x) +- print +- +-print +-print +-print "##### tuning utility" +-print +-print "tune/tune: $(TUNEOBJS)" +-print "\t$(CC) $(CFLAGS) $(LDFLAGS) -o tune/tune $(TUNEOBJS) $(LIBS)" +- +- +-print +-print +-print "##### demo programs" ++ print( ++"""{0}-main.o: {0}-main.c $(HEADERS) ++\t$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -DNDEBUG -o {0}-main.o -c {0}-main.c ++ ++{0}: {0}-main.o $(PROFOBJS) ++\t$(CC) $(CFLAGS) $(LDFLAGS) -o {0} {0}-main.o $(PROFOBJS) $(LIBS) ++ ++{0}-main-ntl.o: {0}-main.c $(HEADERS) ++\t$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -DPROFILE_NTL -DNDEBUG -o {0}-main-ntl.o -c {0}-main.c ++ ++{0}-ntl: {0}-main-ntl.o $(CPP_PROFOBJS) ++\t$(CXX) $(CXXFLAGS) $(LDFLAGS) -o {0}-ntl {0}-main-ntl.o $(CPP_PROFOBJS) $(CPP_LIBS) ++""".format(x)) ++ ++ ++print( ++""" ++ ++##### tuning utility ++ ++tune/tune: $(TUNEOBJS) ++\t$(CC) $(CFLAGS) $(LDFLAGS) -o tune/tune $(TUNEOBJS) $(LIBS) ++ ++ ++##### demo programs ++""") + for x in demo_progs: +- print +- print "%s: %s.o $(LIBOBJS)" % (x, x) +- print "\t$(CC) $(CFLAGS) $(LDFLAGS) -o %s %s.o $(LIBOBJS) $(LIBS)" % (x, x) ++ print( ++"""{0}: {0}.o $(LIBOBJS) ++\t$(CC) $(CFLAGS) $(LDFLAGS) -o {0} {0}.o $(LIBOBJS) $(LIBS) ++""".format(x)) + + +-print +-print +-print "##### object files (with debug code)" ++print("\n##### object files (with debug code)\n") + for x in lib_modules + test_modules + testprof_modules + demo_progs: +- print +- print "%s-DEBUG.o: %s.c $(HEADERS)" % (x, x) +- print "\t$(CC) -g $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -DDEBUG -o %s-DEBUG.o -c %s.c" \ +- % (x, x) +- +-print +-print +-print "##### object files (no debug code)" +-for x in lib_modules + prof_modules + testprof_modules + \ +- tune_modules + demo_progs: +- print +- print "%s.o: %s.c $(HEADERS)" % (x, x) +- print "\t$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -DNDEBUG -o %s.o -c %s.c" % (x, x) +- +-print +-print +-print "##### object files (C++, no debug code)" +-for x in cpp_prof_modules: +- print +- print "%s.o: %s.c $(HEADERS)" % (x, x) +- print "\t$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(CPP_INCLUDES) -DNDEBUG -o %s.o -c %s.c" \ +- % (x, x) ++ print( ++"""{0}-DEBUG.o: {0}.c $(HEADERS) ++\t$(CC) -g $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -DDEBUG -o {0}-DEBUG.o -c {0}.c ++""".format(x)) ++ + ++print("\n##### object files (no debug code)\n") ++for x in (lib_modules + prof_modules + testprof_modules + ++ tune_modules + demo_progs): ++ print( ++"""{0}.o: {0}.c $(HEADERS) ++\t$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -DNDEBUG -o {0}.o -c {0}.c ++""".format(x)) + +-### end of file ++ ++print("\n##### object files (C++, no debug code)\n") ++for x in cpp_prof_modules: ++ print( ++"""{0}.o: {0}.c $(HEADERS) ++\t$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(CPP_INCLUDES) -DNDEBUG -o {0}.o -c {0}.c ++""".format(x))