The allfaces.c file is mentioned in the cddlib manual as an example
file.  Its been in the sage spkg for a long time, I think.  Probably
it was originally included to show sage developers how to use the
library.  So it seems to make sense to get rid of it after #8115 is
sorted out, since cdd_both_reps provides an example that is actually
used.

My apologies for missing this issue in review - makefiles and
libraries are not my strong suit.

-Marshall

On Jan 29, 7:11 am, Volker Braun <vbraun.n...@gmail.com> wrote:
> The cdd_both_reps/cdd_both_reps_gmp are used by the new polyhedra
> package, and are indeed introduced in cddlib-094f.p2.spkg.
>
> I have no idea what the patches/allfaces.c is for - it does not part
> of the cddlib library, but only some utility binary. As far as I can
> tell the allfaces binary is never used by sage. Maybe whoever added it
> can shed some light on this? Its not documented in the SPKG.txt, sigh.
>
> As for the patches/cdd_both_reps-make.patch, this only records the
> changes to the automake source files. You still need to run autoconf/
> automake to generate the makefiles from that. I still don't know the
> correct way of handling this:
>   * The automake sources might be automake-version dependent.
>   * Not everyone has all versions of automake installed, so spkg-
> install can't call automake.
>   * Running autoconf/automake generates big shell scripts (configure,
> makefile). Differences in these need not be recorded.
>   * But different versions of automake will produce different scripts,
> which would clutter up naive patches.
> See also:http://trac.sagemath.org/sage_trac/ticket/8079
>
> I didn't realize that /src is supposed to be the pristine upstream
> source. Note that I previously entered a cddlib-094f.p3.spkg into trac
> for review athttp://trac.sagemath.org/sage_trac/ticket/3304to build
> cddlib as a shared library as well as a couple of other improvements.
> I'll try to merge the changes from your .p3 with mine and report back.
>
> Best wishes,
> Volker
>
> On Jan 29, 10:09 am, Minh Nguyen <nguyenmi...@gmail.com> wrote:
>
> > Hi folks,
>
> > With Sage 4.3.2.alpha0, one has two suspicious binary files under
> > SAGE_LOCAL/bin, as shown by the following hg report:
>
> > [mv...@sage bin]$ pwd
> > /dev/shm/mvngu/sage-4.3.2.alpha0-sage.math/local/bin
> > [mv...@sage bin]$ hg status
> > M sage-banner
> > M sage-gdb-commands
> > M sage-maxima.lisp
> > M sage-verify-pyc
> > ? cdd_both_reps
> > ? cdd_both_reps_gmp
>
> > The files in question are cdd_both_reps and cdd_both_reps_gmp. It
> > turns out that these two files were put there by the package
> > cddlib-094f.p2.spkg. I think they were put there due to using the
> > command "patch" in spkg-install for patching the upstream source under
> > src/.
>
> > A problem with cddlib-094f.p2.spkg is that it patches upstream source
> > using a patch file, rather than copying a patched file over to the
> > appropriate place under the src/ directory. Consequently, there is no
> > clean separation between upstream source and patches that we apply to
> > cddlib-094f. Looking at spkg-install of cddlib-094f.p2.spkg, you get
> > these two lines for applying Sage-specific patches:
>
> > cp patches/allfaces.c src/src/
>
> > patch -p0 < patches/cdd_both_reps-make.patch
>
> > The first line is the preferred way to patch an upstream source
> > because it copies the patched file patches/allfaces.c over to
> > src/src/. Even before running the installation script spkg-install,
> > the original upstream source is the file src/src/allfaces.c and its
> > corresponding patched version for Sage is patches/allfaces.c. And you
> > patch the upstream source using cp. In this way, you keep a clean
> > separation between the source provided by the upstream project and the
> > patches that the Sage project applies on top of the upstream source.
>
> > Now let's consider the second line in the above code listing, i.e.
>
> > patch -p0 < patches/cdd_both_reps-make.patch
>
> > Patching an upstream source in this way results in modified upstream
> > source and this modification now lives under src/, which is supposedly
> > where the clean upstream source lives. Subsequently, anytime you want
> > to update (not upgrade to latest upstream release) the
> > cddlib-094f.p2.spkg package, you have modified source under src/. This
> > can cause a lot of confusion for maintainers who need to have a clean
> > separation between upstream source and Sage-specific patches.
>
> > Here's an example illustrating that using the command "patch" in
> > spkg-install for patching upstream source is a bad idea. Say you have
> > a directory listing as follows:
>
> > [mv...@sage cddlib]$ pwd
> > /home/mvngu/spkg/standard/cddlib
> > [mv...@sage cddlib]$ ls
> > cddlib-094f.p0  cddlib-094f.p0.spkg  cddlib-094f.p2  cddlib-094f.p2.spkg
>
> > In cddlib-094f.p2.spkg, the content of the file
> > patches/cdd_both_reps-make.patch is
>
> > [mv...@sage cddlib]$ cat cddlib-094f.p2/patches/cdd_both_reps-make.patch
> > --- ../cddlib-094f/src/src-gmp/Makefile.am      2009-01-26 
> > 09:30:16.000000000 +0000
> > +++ src/src-gmp/Makefile.am     2009-10-04 10:36:17.000000000 +0100
> > @@ -11,7 +11,8 @@
> >  testcdd2_gmp \
> >  testlp1_gmp \
> >  testlp2_gmp \
> > -testlp3_gmp
> > +testlp3_gmp \
> > +cdd_both_reps_gmp
> >  #cddmathlink
>
> >  scdd_gmp_SOURCES                   = simplecdd.c
> > @@ -27,6 +28,7 @@
> >  testlp1_gmp_SOURCES                = testlp1.c
> >  testlp2_gmp_SOURCES                = testlp2.c
> >  testlp3_gmp_SOURCES                = testlp3.c
> > +cdd_both_reps_gmp_SOURCES          = cdd_both_reps.c
> >  # cddmathlink_SOURCES                = cddmathlink.c cddmlio.h cddmlio.c
>
> >  LDADD        = ../lib-src-gmp/libcddgmp.a
> > --- ../cddlib-094f/src/src/Makefile.am  2009-01-26 09:30:03.000000000 +0000
> > +++ src/src/Makefile.am 2009-10-04 10:36:17.000000000 +0100
> > @@ -11,7 +11,8 @@
> >  testcdd2 \
> >  testlp1 \
> >  testlp2 \
> > -testlp3
> > +testlp3 \
> > +cdd_both_reps
> >  #cddmathlink
>
> >  scdd_SOURCES                   = simplecdd.c
> > @@ -27,6 +28,7 @@
> >  testlp1_SOURCES                = testlp1.c
> >  testlp2_SOURCES                = testlp2.c
> >  testlp3_SOURCES                = testlp3.c
> > +cdd_both_reps_SOURCES          = cdd_both_reps.c
> >  # cddmathlink_SOURCES                = cddmathlink.c cddmlio.h cddmlio.c
>
> >  LDADD        = ../lib-src/libcdd.a
>
> > Now compare cddlib-094f.p0/src/src-gmp/Makefile.am with
> > cddlib-094f.p2/src/src-gmp/Makefile.am and you'd get
>
> > [mv...@sage cddlib]$ diff -u cddlib-094f.p0/src/src-gmp/Makefile.am
> > cddlib-094f.p2/src/src-gmp/Makefile.am---
> > cddlib-094f.p0/src/src-gmp/Makefile.am  2009-01-26 01:30:16.000000000
> > -0800
> > +++ cddlib-094f.p2/src/src-gmp/Makefile.am      2009-10-15 
> > 13:25:26.000000000 -0700
> > @@ -11,7 +11,8 @@
> >  testcdd2_gmp \
> >  testlp1_gmp \
> >  testlp2_gmp \
> > -testlp3_gmp
> > +testlp3_gmp \
> > +cdd_both_reps_gmp
> >  #cddmathlink
>
> >  scdd_gmp_SOURCES                   = simplecdd.c
> > @@ -27,6 +28,7 @@
> >  testlp1_gmp_SOURCES                = testlp1.c
> >  testlp2_gmp_SOURCES                = testlp2.c
> >  testlp3_gmp_SOURCES                = testlp3.c
> > +cdd_both_reps_gmp_SOURCES          = cdd_both_reps.c
> >  # cddmathlink_SOURCES                = cddmathlink.c cddmlio.h cddmlio.c
>
> >  LDADD        = ../lib-src-gmp/libcddgmp.a
>
> > As you can see, cddlib-094f.p2.spkg is mashing up upstream source and
> > Sage-specific patch together and put the result under the directory
> > where the clean upstream, and only the clean upstream source, should
> > live. This is a recipe for confusion. An updated cddlib spkg is up at
>
> >http://trac.sagemath.org/sage_trac/ticket/8115
>
> > awaiting review. On Sage 4.3.1, forcing a re-installation of the
> > updated cddlib spkg did not result in the above binary files copied
> > over to SAGE_LOCAL/bin.
>
> > --
> > Regards
> > Minh Van Nguyen

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to