summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xalgorithm.pdfbin260255 -> 0 bytes
-rwxr-xr-xcode.pdfbin180639 -> 0 bytes
-rw-r--r--debian/changelog35
-rw-r--r--debian/control30
-rw-r--r--debian/copyright14
-rw-r--r--debian/liblbfgsb-dev.docs1
-rw-r--r--debian/liblbfgsb-doc.doc-base7
-rw-r--r--debian/liblbfgsb-doc.install1
-rw-r--r--debian/patches/0006-Stop-generating-iteration-log-files.patch135
-rwxr-xr-xdebian/rules26
-rw-r--r--debian/upstream/metadata24
-rw-r--r--debian/watch11
12 files changed, 100 insertions, 184 deletions
diff --git a/algorithm.pdf b/algorithm.pdf
deleted file mode 100755
index bfc9af6..0000000
--- a/algorithm.pdf
+++ /dev/null
Binary files differ
diff --git a/code.pdf b/code.pdf
deleted file mode 100755
index b257b27..0000000
--- a/code.pdf
+++ /dev/null
Binary files differ
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