Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
A
asdf
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Didier Verna
asdf
Commits
3574f2a5
Commit
3574f2a5
authored
10 years ago
by
Francois-Rene Rideau
Browse files
Options
Downloads
Patches
Plain Diff
Tweak the debian release script...
parent
7f154f4a
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
Makefile
+4
-6
4 additions, 6 deletions
Makefile
bin/asdf-builder
+86
-57
86 additions, 57 deletions
bin/asdf-builder
with
90 additions
and
63 deletions
Makefile
+
4
−
6
View file @
3574f2a5
...
@@ -200,13 +200,11 @@ extract-all-tagged-asdf: build/asdf.lisp
...
@@ -200,13 +200,11 @@ extract-all-tagged-asdf: build/asdf.lisp
# Note that the debian git at git://git.debian.org/git/pkg-common-lisp/cl-asdf.git is stale,
# Note that the debian git at git://git.debian.org/git/pkg-common-lisp/cl-asdf.git is stale,
# as we currently build directly from upstream at git://common-lisp.net/projects/asdf/asdf.git
# as we currently build directly from upstream at git://common-lisp.net/projects/asdf/asdf.git
debian-package
:
mrproper
debian-package
:
:
$${
RELEASE:
=
"
$$(
git tag -l '3.[0-9].[0-9]' | tail -n 1
)
"
}
;
echo
building package version
$$
RELEASE
;
\
./bin/asdf-builder debian-package release
git-buildpackage
--git-debian-branch
=
release
--git-upstream-branch
=
release
--git-upstream-tag
=
$$
RELEASE
--git-tag
--git-retag
--git-ignore-branch
debian-package-from-master
:
mrproper
debian-package-from-master
:
:
$${
RELEASE:
=
"
$$(
git tag -l '3.[0-9].[0-9]' | tail -n 1
)
"
}
;
echo
building package version
$$
RELEASE
;
\
./bin/asdf-builder debian-package master
git-buildpackage
--git-debian-branch
=
master
--git-upstream-branch
=
master
--git-upstream-tag
=
$$
RELEASE
--git-tag
--git-retag
--git-ignore-branch
# Replace SBCL's ASDF with the current one. -- NOT recommended now that SBCL has ASDF2.
# Replace SBCL's ASDF with the current one. -- NOT recommended now that SBCL has ASDF2.
...
...
This diff is collapsed.
Click to expand it.
bin/asdf-builder
+
86
−
57
View file @
3574f2a5
...
@@ -8,7 +8,7 @@
...
@@ -8,7 +8,7 @@
;;;
;;;
;;; Everything is MUCH simpler if you can assume your implementation has a recent-enough ASDF 3:
;;; Everything is MUCH simpler if you can assume your implementation has a recent-enough ASDF 3:
;;; just (require "asdf"), then configure in a subsequent eval-when form,
;;; just (require "asdf"), then configure in a subsequent eval-when form,
;;;
so that
you may use asdf: and uiop: prefix.
;;;
in which
you may
then
use asdf: and uiop: prefix.
;;;
;;;
;;; To use the user-configured ASDF rather than a deterministic self-contained project build,
;;; To use the user-configured ASDF rather than a deterministic self-contained project build,
;;; see instead how cl-launch 4.0.4 loads ASDF.
;;; see instead how cl-launch 4.0.4 loads ASDF.
...
@@ -146,29 +146,23 @@
...
@@ -146,29 +146,23 @@
(ensure-pathname (system-relative-pathname :asdf/defsystem ())
(ensure-pathname (system-relative-pathname :asdf/defsystem ())
:want-physical t :want-absolute t
:want-physical t :want-absolute t
:want-existing t :truename t))
:want-existing t :truename t))
(defparameter /asdf-dir/
(defun pn (&rest x)
(native-namestring *asdf-dir*))
(subpathname *asdf-dir* (and x (uiop:resolve-relative-location x))))
(defun apath (x &rest keys) (apply 'subpathname *asdf-dir* x keys))
(defun nn (&rest x)
(native-namestring (apply 'pn x)))
;;; UIOP directory
;;; UIOP directory
(defvar *uiop-dir* (subpathname *asdf-dir* "uiop/"))
(defvar *uiop-dir* (pn "uiop/"))
(defparameter /uiop-dir/ (native-namestring *uiop-dir*))
(defun upath (x &rest keys) (apply 'subpathname *uiop-dir* x keys))
;;; build directory
;;; build directory
(defparameter *build-dir*
(defparameter *build-dir* (pn "build/"))
(ensure-pathname
(defparameter /build-dir/ (nn "build/"))
"build/" :defaults *asdf-dir*
:want-relative t :ensure-absolute t
:ensure-subpath t))
(defparameter /build-dir/
(native-namestring *build-dir*))
(defun bpath (x &rest keys) (apply 'subpathname *build-dir* x keys))
(defun bpath (x &rest keys) (apply 'subpathname *build-dir* x keys))
(defparameter *version*
(defparameter *version-file*
(safe-read-file-form
(pn "version.lisp-expr"))
(subpathname *asdf-dir* "version.lisp-expr")))
(defparameter *version* (safe-read-file-form *version-file*))
(defun enough-namestring! (base pathname)
(defun enough-namestring! (base pathname)
(let ((e (enough-namestring base pathname)))
(let ((e (enough-namestring base pathname)))
...
@@ -201,40 +195,32 @@
...
@@ -201,40 +195,32 @@
(ensure-pathname base :want-absolute t :want-existing t :want-directory t)
(ensure-pathname base :want-absolute t :want-existing t :want-directory t)
(dolist (f files)
(dolist (f files)
(check-type f string))
(check-type f string))
(let* ((/base/
(let* ((base
(native-namestring
(ensure-pathname
(ensure-pathname
base
base
:want-absolute t :want-directory t
:want-absolute t :want-directory t
:want-existing t :truename t))
:want-existing t :truename t)))
(destination
(destination
(ensure-pathname
(ensure-pathname
name
name
:defaults *build-dir*
:defaults *build-dir*
:want-relative t :ensure-absolute t
:want-relative t :ensure-absolute t
:ensure-subpath t :ensure-directory t))
:ensure-subpath t :ensure-directory t))
(/destination/
(tarball
(native-namestring destination))
(ensure-pathname
(/tarball/
(tarname name)
(native-namestring
:defaults *build-dir*
(ensure-pathname
:want-relative t :ensure-absolute t
(tarname name)
:ensure-subpath t :want-file t
:defaults *build-dir*
:ensure-directories-exist t)))
:want-relative t :ensure-absolute t
:ensure-subpath t :want-file t
:ensure-directories-exist t)))
(/files/
(mapcar 'native-namestring files)))
(assert (< 6 (length (pathname-directory destination))))
(assert (< 6 (length (pathname-directory destination))))
(when (probe-file* destination)
(when (probe-file* destination)
(error "Destination ~S already exists, not taking chances - you can delete it yourself."
(error "Destination ~S already exists, not taking chances - you can delete it yourself."
destination))
destination))
(ensure-directories-exist destination)
(ensure-directories-exist destination)
(run (format nil "cd ~S && cp -pHux --parents ~{~S ~} ~S"
(run `(cp "-pHux" --parents ,@files ,destination) :directory base :show t)
/base/ /files/ /destination/) :show t)
(run `(tar "zcfC" ,tarball ,*build-dir* (,name /)) :show t)
(run (format nil "tar zcfC ~S ~S ~S/"
(delete-directory-tree destination :validate (lambda (x) (equal x destination)))
/tarball/ /build-dir/ name) :show t)
(delete-directory-tree destination :validate (lambda (x) (equal (native-namestring x) /destination/)))
(values)))
(values)))
(defun driver-files ()
(defun driver-files ()
...
@@ -254,11 +240,12 @@
...
@@ -254,11 +240,12 @@
(make-tarball-under-build (asdf-defsystem-name) *asdf-dir* (asdf-defsystem-files)))
(make-tarball-under-build (asdf-defsystem-name) *asdf-dir* (asdf-defsystem-files)))
(defun asdf-git-name ()
(defun asdf-git-name ()
(
format nil
"asdf-
~A
" *version*))
(
strcat
"asdf-" *version*))
(defun make-git-tarball ()
(defun make-git-tarball ()
(build-asdf)
(build-asdf)
(run (format nil "cd ~S && tar zcf build/~A.tar.gz build/asdf.lisp $(git ls-files)"
(with-current-directory ((pn))
/asdf-dir/ (asdf-git-name)) :show t)
(run `(tar zcf ("build/" ,(asdf-git-name) ".tar.gz") build/asdf.lisp ,@(run/lines '(git ls-files)))
(asdf-git-name)) :show t)
(values))
(values))
(defun asdf-lisp-name ()
(defun asdf-lisp-name ()
...
@@ -266,8 +253,8 @@
...
@@ -266,8 +253,8 @@
(defun make-asdf-lisp ()
(defun make-asdf-lisp ()
(build-asdf)
(build-asdf)
(concatenate-files (list (
apath
"build/asdf.lisp"))
(concatenate-files (list (
pn
"build/asdf.lisp"))
(
bpath
(asdf-lisp-name))))
(
pn "build/"
(asdf-lisp-name))))
(defun make-archive ()
(defun make-archive ()
(make-driver-tarball)
(make-driver-tarball)
...
@@ -278,6 +265,7 @@
...
@@ -278,6 +265,7 @@
(defvar *clnet* "common-lisp.net")
(defvar *clnet* "common-lisp.net")
(defvar *clnet-asdf-public* "/project/asdf/public_html/")
(defvar *clnet-asdf-public* "/project/asdf/public_html/")
(defun public-path (x) (strcat *clnet-asdf-public* x))
(defun publish-archive ()
(defun publish-archive ()
(let ((tarballs (mapcar 'tarname (list (driver-name) (asdf-defsystem-name) (asdf-git-name)))))
(let ((tarballs (mapcar 'tarname (list (driver-name) (asdf-defsystem-name) (asdf-git-name)))))
...
@@ -291,13 +279,13 @@
...
@@ -291,13 +279,13 @@
(defun link-archive ()
(defun link-archive ()
(run (format nil "ln -sf ~S ~S ; ln -sf ~S ~S ; ln -sf ~S ~S ; ln -sf ~S ~S"
(run (format nil "ln -sf ~S ~S ; ln -sf ~S ~S ; ln -sf ~S ~S ; ln -sf ~S ~S"
(tarname (driver-name))
(tarname (driver-name))
(
strcat *clnet-asdf-
public
*
"archives/uiop.tar.gz")
(public
-path
"archives/uiop.tar.gz")
(tarname (asdf-defsystem-name))
(tarname (asdf-defsystem-name))
(
strcat *clnet-asdf-
public
*
"archives/asdf-defsystem.tar.gz")
(public
-path
"archives/asdf-defsystem.tar.gz")
(tarname (asdf-git-name))
(tarname (asdf-git-name))
(
strcat *clnet-asdf-
public
*
"archives/asdf.tar.gz")
(public
-path
"archives/asdf.tar.gz")
(asdf-lisp-name)
(asdf-lisp-name)
(
strcat *clnet-asdf-
public
*
"archives/asdf.lisp"))
(public
-path
"archives/asdf.lisp"))
:show t :host *clnet*)
:show t :host *clnet*)
(values))
(values))
...
@@ -312,9 +300,6 @@
...
@@ -312,9 +300,6 @@
("header.lisp" "This is ASDF " ": Another System Definition Facility.")
("header.lisp" "This is ASDF " ": Another System Definition Facility.")
("upgrade.lisp" " (asdf-version \"" "\")")))
("upgrade.lisp" " (asdf-version \"" "\")")))
(defparameter *version-file*
(apath "version.lisp-expr"))
(defparameter *old-version* nil)
(defparameter *old-version* nil)
(defparameter *new-version* nil)
(defparameter *new-version* nil)
...
@@ -376,13 +361,13 @@
...
@@ -376,13 +361,13 @@
(values new-text foundp)))))
(values new-text foundp)))))
(defun transform-file (new-version file prefix suffix)
(defun transform-file (new-version file prefix suffix)
(maybe-replace-file (
apath
file) (version-transformer new-version file prefix suffix)))
(maybe-replace-file (
pn
file) (version-transformer new-version file prefix suffix)))
(defun transform-files (new-version)
(defun transform-files (new-version)
(loop :for f :in *versioned-files* :do (apply 'transform-file new-version f)))
(loop :for f :in *versioned-files* :do (apply 'transform-file new-version f)))
(defun test-transform-file (new-version file prefix suffix)
(defun test-transform-file (new-version file prefix suffix)
(let ((lines (read-file-lines (
apath
file))))
(let ((lines (read-file-lines (
pn
file))))
(dolist (l lines (progn (warn "Couldn't find a match in ~A" file) nil))
(dolist (l lines (progn (warn "Couldn't find a match in ~A" file) nil))
(multiple-value-bind (new-text foundp)
(multiple-value-bind (new-text foundp)
(funcall (version-transformer new-version file prefix suffix t) l)
(funcall (version-transformer new-version file prefix suffix t) l)
...
@@ -402,9 +387,53 @@
...
@@ -402,9 +387,53 @@
(a "Rebuilding ASDF with bumped version")
(a "Rebuilding ASDF with bumped version")
(build-asdf)))
(build-asdf)))
(defun git-version ()
(defparameter *version-tag-glob* "[0-9][.][0-9]*")
(first (run/lines '("git" "describe" "--tags" "--match" "[0-9].[0-9][0-9]") :show t)))
(defun version-from-tag (&optional commit)
(first (run/lines `("git" "describe" "--tags" "--match" ,*version-tag-glob*) :show t)))
(defun version-from-file (&optional commit)
(if commit
(run `("git" "show" (,commit":version.lisp-expr")) :output :form)
(read-file-form *version-file*)))
(defun debian-version-from-file (&optional commit)
(let ((line
(if commit
(run `("git" "show" (,commit":debian/changelog")) :output :line)
(read-file-line "debian/changelog"))))
(cl-ppcre:register-groups-bind (ver) ("^cl-asdf [(]([0-9.:-]+)[)] " line)
ver)))
(defun clean ()
(with-current-directory ((pn))
(run '(git clean -xfd)))
(values))
(defun debian-package (&optional (release "release"))
(let* ((debian-version (debian-version-from-file release))
(version (version-from-file release)))
(unless (cl-ppcre:register-groups-bind (x epoch ver rel)
("^(([0-9]+):)?([0-9.]+)-([0-9]+)$" debian-version)
(declare (ignorable x epoch rel))
(equal ver version))
(error "Debian version ~A doesn't match asdf version ~A" debian-version version))
(clean)
(format t "building package version ~A~%" (debian-version-from-file))
(run `(git-buildpackage
;; --git-ignore-new ;; for testing purpose
(--git-debian-branch= ,release)
(--git-upstream-tag="%(version)s")
;;--git-upstream-tree=tag ;; if the changelog says 3.1.2, looks at that tag
;;(--git-upstream-branch= ,version) ;; if the changelog says 3.1.2, looks at that tag
--git-tag --git-retag
;; --git-no-pristine-tar
--git-force-create
--git-ignore-branch)
:directory (pn) :show t)))
(defun re (arg)
(eval (read-from-string arg)))
;;;; Main entry point
;;;; Main entry point
(defun main (args)
(defun main (args)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment