diff options
-rwxr-xr-x | algorithm.pdf | bin | 260255 -> 0 bytes | |||
-rwxr-xr-x | code.pdf | bin | 180639 -> 0 bytes | |||
-rw-r--r-- | debian/changelog | 35 | ||||
-rw-r--r-- | debian/control | 30 | ||||
-rw-r--r-- | debian/copyright | 14 | ||||
-rw-r--r-- | debian/liblbfgsb-dev.docs | 1 | ||||
-rw-r--r-- | debian/liblbfgsb-doc.doc-base | 7 | ||||
-rw-r--r-- | debian/liblbfgsb-doc.install | 1 | ||||
-rw-r--r-- | debian/patches/0006-Stop-generating-iteration-log-files.patch | 135 | ||||
-rwxr-xr-x | debian/rules | 26 | ||||
-rw-r--r-- | debian/upstream/metadata | 24 | ||||
-rw-r--r-- | debian/watch | 11 |
12 files changed, 100 insertions, 184 deletions
diff --git a/algorithm.pdf b/algorithm.pdf Binary files differdeleted file mode 100755 index bfc9af6..0000000 --- a/algorithm.pdf +++ /dev/null diff --git a/code.pdf b/code.pdf Binary files differdeleted file mode 100755 index b257b27..0000000 --- a/code.pdf +++ /dev/null diff --git a/debian/changelog b/debian/changelog index f57ec66..bc9ce42 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,8 +1,39 @@ -lbfgsb (3.0+dfsg.3-10) UNRELEASED; urgency=medium +lbfgsb (3.0+dfsg.4-1) unstable; urgency=medium + [ Debian Janitor ] + * Use https in upstream metadata. + * Remove duplicate field in upstream metadata. + + [ Gard Spreemann ] + * New DFSG repack without upstream's PDFs. This is due to doubts about + whether upstream intends these to be under the BSD-3-clause + license. Moreover, as already typeset PDFs, they are not in a + preferred form for modification. + * Drop liblbfgsb-doc binary that used to ship said PDFs. + * Install README with liblbfgsb-dev. + * Standards-version 4.6.2.0. No changes needed. + * Clean up watch file. + + -- Gard Spreemann <gspr@nonempty.org> Tue, 28 Feb 2023 20:13:22 +0100 + +lbfgsb (3.0+dfsg.3-11) unstable; urgency=medium + + * Simplify build flags. (Closes: #1015469) + * Standards-version 4.6.1.0. No changes needed. + + -- Gard Spreemann <gspr@nonempty.org> Wed, 20 Jul 2022 13:24:01 +0200 + +lbfgsb (3.0+dfsg.3-10) unstable; urgency=medium + + [ Debian Janitor ] * Trim trailing whitespace. - -- Debian Janitor <janitor@jelmer.uk> Mon, 14 Sep 2020 23:05:49 -0000 + [ Gard Spreemann ] + * Standards-version 4.6.0.1. No changes needed. + * Started upstream metadata. + * Change log file disabling patch to preserve upstream ABI. + + -- Gard Spreemann <gspr@nonempty.org> Mon, 13 Dec 2021 15:11:19 +0100 lbfgsb (3.0+dfsg.3-9) unstable; urgency=medium diff --git a/debian/control b/debian/control index b7e2fa2..8475a74 100644 --- a/debian/control +++ b/debian/control @@ -2,10 +2,10 @@ Source: lbfgsb Maintainer: Gard Spreemann <gspr@nonempty.org> Section: math Priority: optional -Standards-Version: 4.5.0 +Standards-Version: 4.6.2.0 Build-Depends: debhelper-compat (= 13), gfortran, libblas-dev, liblapack-dev Rules-Requires-Root: no -Homepage: http://users.iems.northwestern.edu/~nocedal/lbfgsb.html +Homepage: https://users.iems.northwestern.edu/~nocedal/lbfgsb.html Vcs-Browser: https://salsa.debian.org/gspr/lbfgsb Vcs-Git: https://salsa.debian.org/gspr/lbfgsb.git -b debian/sid @@ -60,32 +60,6 @@ Description: Limited-memory quasi-Newton bound-constrained optimization (static optimization (2011), to appear in ACM Transactions on Mathematical Software. -Package: liblbfgsb-doc -Section: doc -Architecture: all -Multi-Arch: foreign -Depends: ${misc:Depends} -Description: Limited-memory quasi-Newton bound-constrained optimization (documentation) - Fortran library implementing limited-memory quasi-Newton - bound-constrained optimization as described in [1,2,3]. - . - This package contains the documentation describing the library and - algorithm. - . - [1] R. H. Byrd, P. Lu and J. Nocedal. A Limited Memory Algorithm for - Bound Constrained Optimization, (1995), SIAM Journal on Scientific - and Statistical Computing , 16, 5, pp. 1190-1208. - . - [2] C. Zhu, R. H. Byrd and J. Nocedal. L-BFGS-B: Algorithm 778: - L-BFGS-B, FORTRAN routines for large scale bound constrained - optimization (1997), ACM Transactions on Mathematical Software, Vol - 23, Num. 4, pp. 550 - 560. - . - [3] J.L. Morales and J. Nocedal. L-BFGS-B: Remark on Algorithm 778: - L-BFGS-B, FORTRAN routines for large scale bound constrained - optimization (2011), to appear in ACM Transactions on Mathematical - Software. - Package: liblbfgsb-examples Section: libs Architecture: any diff --git a/debian/copyright b/debian/copyright index 55c28cd..80e30f8 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,16 +1,18 @@ Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ Upstream-Name: L-BFGS-B -Files-Excluded: x.* ._* OUTPUTS/._* ../._Lbfgsb.3.0 linpack.f blas.f -Source: http://users.iems.northwestern.edu/~nocedal/lbfgsb.html - The pristine upstream source contains prebuilt binaries and various metadata - files, as well as unused copied of LINPACK and BLAS. These are removed. +Files-Excluded: x.* ._* OUTPUTS/._* ../._Lbfgsb.3.0 linpack.f blas.f *.pdf +Source: https://users.iems.northwestern.edu/~nocedal/lbfgsb.html + The upstream source contains prebuilt binaries and various metadata + files, as well as unused copies of LINPACK and BLAS. These are + removed. It also contains PDFs, to which it seems unclear whether the + license is intended to apply. These are therefore also removed. Files: * -Copyright: Ciyou Zhu, Richard Byrd, Jorge Nocedal, Jose Luis Morales +Copyright: 2011 Ciyou Zhu, Richard Byrd, Jorge Nocedal, Jose Luis Morales License: BSD-3-clause Files: debian/* -Copyright: 2013-2020 Gard Spreemann <gspr@nonempty.org> +Copyright: 2013-2023 Gard Spreemann <gspr@nonempty.org> License: BSD-3-clause Files: debian/tests/*.f90 diff --git a/debian/liblbfgsb-dev.docs b/debian/liblbfgsb-dev.docs new file mode 100644 index 0000000..e845566 --- /dev/null +++ b/debian/liblbfgsb-dev.docs @@ -0,0 +1 @@ +README diff --git a/debian/liblbfgsb-doc.doc-base b/debian/liblbfgsb-doc.doc-base deleted file mode 100644 index 34a46a8..0000000 --- a/debian/liblbfgsb-doc.doc-base +++ /dev/null @@ -1,7 +0,0 @@ -Document: liblbfgsb-doc -Title: L-BFGS-B manual -Abstract: This manual describes the algorithm behind, and the implementation of L-BFGS-B. -Section: Science/Mathematics - -Format: PDF -Files: /usr/share/doc/liblbfgsb/*.pdf diff --git a/debian/liblbfgsb-doc.install b/debian/liblbfgsb-doc.install deleted file mode 100644 index e92aec8..0000000 --- a/debian/liblbfgsb-doc.install +++ /dev/null @@ -1 +0,0 @@ -*.pdf usr/share/doc/liblbfgsb/
\ No newline at end of file diff --git a/debian/patches/0006-Stop-generating-iteration-log-files.patch b/debian/patches/0006-Stop-generating-iteration-log-files.patch index aa31976..efff3f1 100644 --- a/debian/patches/0006-Stop-generating-iteration-log-files.patch +++ b/debian/patches/0006-Stop-generating-iteration-log-files.patch @@ -1,15 +1,14 @@ From: Gard Spreemann <gspr@nonempty.org> -Date: Thu, 30 Jul 2020 10:49:15 +0200 -Subject: Stop generating iteration log files. +Date: Mon, 13 Dec 2021 14:56:07 +0100 +Subject: Stop generating iteration log files -Based on SciPy commit - c3c54c15eafe7fa7a2b7a499cb64f38f1a7ee057 +Based on SciPy commit c3c54c15eafe7fa7a2b7a499cb64f38f1a7ee057 --- - lbfgsb.f | 61 +++++++++++-------------------------------------------------- - 1 file changed, 11 insertions(+), 50 deletions(-) + lbfgsb.f | 37 ++----------------------------------- + 1 file changed, 2 insertions(+), 35 deletions(-) diff --git a/lbfgsb.f b/lbfgsb.f -index 59f0a97..e30aff0 100644 +index 59f0a97..18d4715 100644 --- a/lbfgsb.f +++ b/lbfgsb.f @@ -140,8 +140,6 @@ c 0<iprint<99 print also f and |proj g| every iprint iterations; @@ -30,51 +29,20 @@ index 59f0a97..e30aff0 100644 c c csave is a working string of characters of length 60. c -@@ -483,7 +479,7 @@ c ************ - - logical prjctd,cnstnd,boxed,updatd,wrk - character*3 word -- integer i,k,nintol,itfile,iback,nskip, -+ integer i,k,nintol,iback,nskip, - + head,col,iter,itail,iupdat, - + nseg,nfgv,info,ifun, - + iword,nfree,nact,ileave,nenter -@@ -546,24 +542,18 @@ c 'word' records the status of subspace solutions. - c 'info' records the termination information. +@@ -547,10 +543,8 @@ c 'info' records the termination information. info = 0 -- itfile = 8 + itfile = 8 - if (iprint .ge. 1) then -c open a summary file 'iterate.dat' - open (8, file = 'iterate.dat', status = 'unknown') - endif -- - c Check the input arguments for errors. - - call errclb(n,m,factr,l,u,nbd,task,info,k) - if (task(1:5) .eq. 'ERROR') then -- call prn3lb(n,x,f,task,iprint,info,itfile, -+ call prn3lb(n,x,f,task,iprint,info, - + iter,nfgv,nintol,nskip,nact,sbgnrm, - + zero,nseg,word,iback,stp,xstep,k, - + cachyt,sbtime,lnscht) - return - endif ++c Originally a file named iterate.dat was created. We disable ++c this behavior in Debian. -- call prn1lb(n,m,l,u,x,iprint,itfile,epsmch) -+ call prn1lb(n,m,l,u,x,iprint,epsmch) - - c Initialize iwhere & project x onto the feasible set. - -@@ -580,7 +570,6 @@ c restore local variables. - updatd = lsave(4) + c Check the input arguments for errors. - nintol = isave(1) -- itfile = isave(3) - iback = isave(4) - nskip = isave(5) - head = isave(6) -@@ -646,7 +635,6 @@ c Compute the infinity norm of the (-) projected gradient. +@@ -646,7 +640,6 @@ c Compute the infinity norm of the (-) projected gradient. if (iprint .ge. 1) then write (6,1002) iter,f,sbgnrm @@ -82,33 +50,7 @@ index 59f0a97..e30aff0 100644 endif if (sbgnrm .le. pgtol) then c terminate the algorithm. -@@ -834,7 +822,7 @@ c Compute the infinity norm of the projected (-)gradient. - - c Print iteration information. - -- call prn2lb(n,x,f,g,iprint,itfile,iter,nfgv,nact, -+ call prn2lb(n,x,f,g,iprint,iter,nfgv,nact, - + sbgnrm,nseg,word,iword,iback,stp,xstep) - goto 1000 - endif -@@ -927,7 +915,7 @@ c -------------------- the end of the loop ----------------------------- - 999 continue - call timer(time2) - time = time2 - time1 -- call prn3lb(n,x,f,task,iprint,info,itfile, -+ call prn3lb(n,x,f,task,iprint,info, - + iter,nfgv,nintol,nskip,nact,sbgnrm, - + time,nseg,word,iback,stp,xstep,k, - + cachyt,sbtime,lnscht) -@@ -941,7 +929,6 @@ c Save local variables. - lsave(4) = updatd - - isave(1) = nintol -- isave(3) = itfile - isave(4) = iback - isave(5) = nskip - isave(6) = head -@@ -1361,8 +1348,6 @@ c 0<iprint<99 print also f and |proj g| every iprint iterations; +@@ -1361,8 +1354,6 @@ c 0<iprint<99 print also f and |proj g| every iprint iterations; c iprint=99 print details of every iteration except n-vectors; c iprint=100 print also the changes of active set and final x; c iprint>100 print details of every iteration including x and g; @@ -117,19 +59,7 @@ index 59f0a97..e30aff0 100644 c c sbgnrm is a double precision variable. c On entry sbgnrm is the norm of the projected gradient at x. -@@ -2673,9 +2658,9 @@ c and the last column of SS: - - c======================= The end of matupd ============================= - -- subroutine prn1lb(n, m, l, u, x, iprint, itfile, epsmch) -+ subroutine prn1lb(n, m, l, u, x, iprint, epsmch) - -- integer n, m, iprint, itfile -+ integer n, m, iprint - double precision epsmch, x(n), l(n), u(n) - - c ************ -@@ -2705,9 +2690,6 @@ c ************ +@@ -2705,9 +2696,6 @@ c ************ write (6,7001) epsmch write (6,*) 'N = ',n,' M = ',m if (iprint .ge. 1) then @@ -139,21 +69,7 @@ index 59f0a97..e30aff0 100644 if (iprint .gt. 100) then write (6,1004) 'L =',(l(i),i = 1,n) write (6,1004) 'X0 =',(x(i),i = 1,n) -@@ -2744,11 +2726,11 @@ c ************ - - c======================= The end of prn1lb ============================= - -- subroutine prn2lb(n, x, f, g, iprint, itfile, iter, nfgv, nact, -+ subroutine prn2lb(n, x, f, g, iprint, iter, nfgv, nact, - + sbgnrm, nseg, word, iword, iback, stp, xstep) - - character*3 word -- integer n, iprint, itfile, iter, nfgv, nact, nseg, -+ integer n, iprint, iter, nfgv, nact, nseg, - + iword, iback - double precision f, sbgnrm, stp, xstep, x(n), g(n) - -@@ -2798,8 +2780,6 @@ c the truncated Newton step has been used. +@@ -2798,8 +2786,6 @@ c the truncated Newton step has been used. imod = mod(iter,iprint) if (imod .eq. 0) write (6,2001) iter,f,sbgnrm endif @@ -162,24 +78,7 @@ index 59f0a97..e30aff0 100644 1004 format (/,a4, 1p, 6(1x,d11.4),/,(4x,1p,6(1x,d11.4))) 2001 format -@@ -2812,14 +2792,14 @@ c the truncated Newton step has been used. - - c======================= The end of prn2lb ============================= - -- subroutine prn3lb(n, x, f, task, iprint, info, itfile, -+ subroutine prn3lb(n, x, f, task, iprint, info, - + iter, nfgv, nintol, nskip, nact, sbgnrm, - + time, nseg, word, iback, stp, xstep, k, - + cachyt, sbtime, lnscht) - - character*60 task - character*3 word -- integer n, iprint, info, itfile, iter, nfgv, nintol, -+ integer n, iprint, info, iter, nfgv, nintol, - + nskip, nact, nseg, iback, k - double precision f, sbgnrm, time, stp, xstep, cachyt, sbtime, - + lnscht, x(n) -@@ -2873,23 +2853,6 @@ c ************ +@@ -2873,23 +2859,6 @@ c ************ if (info .eq. -8) write (6,9018) if (info .eq. -9) write (6,9019) endif @@ -203,7 +102,7 @@ index 59f0a97..e30aff0 100644 endif 1004 format (/,a4, 1p, 6(1x,d11.4),/,(4x,1p,6(1x,d11.4))) -@@ -3152,8 +3115,6 @@ c 0<iprint<99 print also f and |proj g| every iprint iterations; +@@ -3152,8 +3121,6 @@ c 0<iprint<99 print also f and |proj g| every iprint iterations; c iprint=99 print details of every iteration except n-vectors; c iprint=100 print also the changes of active set and final x; c iprint>100 print details of every iteration including x and g; diff --git a/debian/rules b/debian/rules index 60d2ed6..48c4f4c 100755 --- a/debian/rules +++ b/debian/rules @@ -2,16 +2,8 @@ SONAME=liblbfgsb.so.0 -# Enable hardening, but remove pie flag since we're building a shared -# object. See also -# https://lists.debian.org/debian-devel/2013/01/msg00225.html. -MAINTOPTS = hardening=+all,-pie -FCFLAGS:=$(shell DEB_BUILD_MAINT_OPTIONS=$(MAINTOPTS) dpkg-buildflags --get FCFLAGS) -LDFLAGS:=$(shell DEB_BUILD_MAINT_OPTIONS=$(MAINTOPTS) dpkg-buildflags --get LDFLAGS) - -MAINTOPTS_EX = hardening=+all -FCFLAGS_EX:=$(shell DEB_BUILD_MAINT_OPTIONS=$(MAINTOPTS_EX) dpkg-buildflags --get FCFLAGS) -LDFLAGS_EX:=$(shell DEB_BUILD_MAINT_OPTIONS=$(MAINTOPTS_EX) dpkg-buildflags --get LDFLAGS) +export DEB_BUILD_MAINT_OPTIONS = hardening=+all +include /usr/share/dpkg/buildflags.mk %: dh $@ @@ -28,22 +20,22 @@ build/liblbfgsb.a: build/lbfgsb.o build/timer.o ar cr $@ $^ build/lbfgsb-examples_driver1_77: driver1.f build/liblbfgsb.so - gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) -o $@ $< -llbfgsb -Lbuild + gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild build/lbfgsb-examples_driver1_90: driver1.f90 build/liblbfgsb.so - gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) -o $@ $< -llbfgsb -Lbuild + gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild build/lbfgsb-examples_driver2_77: driver2.f build/liblbfgsb.so - gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) -o $@ $< -llbfgsb -Lbuild + gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild build/lbfgsb-examples_driver2_90: driver2.f90 build/liblbfgsb.so - gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) -o $@ $< -llbfgsb -Lbuild + gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild build/lbfgsb-examples_driver3_77: driver3.f build/liblbfgsb.so - gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) -o $@ $< -llbfgsb -Lbuild + gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild build/lbfgsb-examples_driver3_90: driver3.f90 build/liblbfgsb.so - gfortran $(FCFLAGS_EX) $(LDFLAGS_EX) -o $@ $< -llbfgsb -Lbuild + gfortran $(FCFLAGS) $(LDFLAGS) -o $@ $< -llbfgsb -Lbuild execute_before_dh_auto_build: mkdir -p build @@ -57,4 +49,4 @@ execute_before_dh_auto_clean: rm -rf build override_dh_compress: - dh_compress -X.pdf -X.f -X.f90 -Xoutput_ + dh_compress -X.f -X.f90 -Xoutput_ diff --git a/debian/upstream/metadata b/debian/upstream/metadata new file mode 100644 index 0000000..d39dea8 --- /dev/null +++ b/debian/upstream/metadata @@ -0,0 +1,24 @@ +Reference: +- Title: A Limited Memory Algorithm for Bound Constrained Optimization + Author: R. H. Byrd, P. Lu and J. Nocedal + Journal: SIAM Journal on Scientific and Statistical Computing + Year: 1995 + Volume: 16 + Number: 5 + Pages: 1190-1208 +- Title: 'L-BFGS-B: Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound + constrained optimization' + Author: C. Zhu, R. H. Byrd and J. Nocedal + Journal: ACM Transactions on Mathematical Software + Year: 1997 + Volume: 23 + Number: 4 + Pages: 550-560 +- Title: 'Remark on Algorithm 778: L-BFGS-B, FORTRAN routines for large scale bound + constrained optimization' + Author: J.L. Morales and J. Nocedal + Journal: ACM Transactions on Mathematical Software + Year: 2011 + Volume: 38 + Number: 1 + Pages: 1-4 diff --git a/debian/watch b/debian/watch index db539dc..b02a559 100644 --- a/debian/watch +++ b/debian/watch @@ -1,5 +1,6 @@ -version=3 - -opts="dversionmangle=s/\+dfsg\.\d+$//,filenamemangle=s/\S+\/v?(\S+)\.tar\.gz/lbfgsb-$1\.tar\.gz/" \ - http://users.iems.northwestern.edu/~nocedal/lbfgsb.html \ - Software/Lbfgsb\.(.+)\.tar\.(?:bz2|gz|xz)
\ No newline at end of file +version=4 +opts="dversionmangle=s/@DEB_EXT@//, \ + filenamemangle=s/(?:.*?)?v?(\d[\d.]*@ARCHIVE_EXT@)/@PACKAGE@-$1/, \ + oversionmangle=s/(.*)/$1+dfsg.4/" \ + http://users.iems.northwestern.edu/~nocedal/lbfgsb.html \ + Software/Lbfgsb\.(.+)\.tar\.gz |