summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--debian/changelog139
-rw-r--r--debian/control44
-rw-r--r--debian/dirs1
-rw-r--r--debian/emacs-snapshot.sh3
-rwxr-xr-xdebian/install3
-rw-r--r--debian/links1
-rwxr-xr-xdebian/merge-snapshot37
-rwxr-xr-xdebian/postinst7
-rwxr-xr-xdebian/prerm7
-rwxr-xr-xdebian/rules25
-rw-r--r--debian/source/format1
-rw-r--r--debian/source/patch-header8
-rw-r--r--lisp/emacs-lisp/package.el1
-rw-r--r--lisp/startup.el7
15 files changed, 288 insertions, 1 deletions
diff --git a/.gitignore b/.gitignore
index 0ecbcd061fb..b35439604fb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -23,6 +23,11 @@
# in Git 1.8.2 (March 2013).
+# Debian packaging
+config.guess
+config.sub
+debian/emacs-snapshot/
+
# Personal customization.
.dir-locals-2.el
diff --git a/debian/changelog b/debian/changelog
new file mode 100644
index 00000000000..508c9ff0134
--- /dev/null
+++ b/debian/changelog
@@ -0,0 +1,139 @@
+emacs-snapshot (29~git20220816.1) unstable; urgency=medium
+
+ * Package git snapshot.
+ * d/control: update b-d to libgccjit-12-dev for current sid.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Wed, 17 Aug 2022 15:14:59 -0700
+
+emacs-snapshot (29~git20220714.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Mon, 18 Jul 2022 16:18:38 -0700
+
+emacs-snapshot (29~git20220630.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Thu, 30 Jun 2022 17:40:17 -0700
+
+emacs-snapshot (29~git20220509.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Mon, 09 May 2022 22:05:59 -0700
+
+emacs-snapshot (29~git20220505.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Fri, 06 May 2022 17:48:14 -0700
+
+emacs-snapshot (29~git20220412.1) unstable; urgency=medium
+
+ * Package git snapshot.
+ * d/merge-snapshot: use git-merge-base(1) to determine what to merge.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Wed, 13 Apr 2022 17:53:27 -0700
+
+emacs-snapshot (29~git20220317.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Thu, 17 Mar 2022 13:42:54 -0700
+
+emacs-snapshot (29~git20220222.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Thu, 24 Feb 2022 13:16:15 -0700
+
+emacs-snapshot (29~git20220124.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Mon, 24 Jan 2022 17:29:50 -0700
+
+emacs-snapshot (29~git20220116.1) unstable; urgency=medium
+
+ * Package git snapshot.
+ * Drop temporarily-included org-checklist.el and ol-notmuch.el.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Sun, 16 Jan 2022 16:08:06 -0700
+
+emacs-snapshot (29~git20220113.1) unstable; urgency=medium
+
+ * Package git snapshot.
+ * d/rules: export NATIVE_FULL_AOT=1 to precompile all .eln files.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Thu, 13 Jan 2022 15:06:02 -0700
+
+emacs-snapshot (29~git20211218.1) unstable; urgency=medium
+
+ * Package git snapshot.
+ * d/rules: switch --with-x-toolkit=lucid -> --with-pgtk.
+ * d/control: b-d on libgtk-3-dev.
+ * d/control: update b-d to libgccjit-11-dev for current sid.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Sun, 19 Dec 2021 16:19:26 -0700
+
+emacs-snapshot (28~git20210819.1) unstable; urgency=medium
+
+ * Package git snapshot.
+ * d/rules: enable native-comp.
+ * d/control: b-d on libgccjit-10-dev.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Sat, 21 Aug 2021 15:36:34 -0700
+
+emacs-snapshot (28~git20210208.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Thu, 11 Feb 2021 18:51:35 -0700
+
+emacs-snapshot (28~git20210131.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Mon, 01 Feb 2021 17:20:13 -0700
+
+emacs-snapshot (28~git20210119.1) unstable; urgency=medium
+
+ * Package git snapshot.
+ * Temporarily include org-checklist.el and ol-notmuch.el from Org-mode's
+ 9.4.4 release.
+ Debian's Org-mode package fails to bytecompile against Emacs 28 atm,
+ so rely on the version of Org bundled with Emacs, plus these two
+ contrib files.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Thu, 21 Jan 2021 18:44:32 -0700
+
+emacs-snapshot (28~git20201101.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Sat, 28 Nov 2020 19:13:41 -0700
+
+emacs-snapshot (28~git20200906.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Sun, 13 Sep 2020 14:36:27 -0700
+
+emacs-snapshot (28~git20200820.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Fri, 21 Aug 2020 15:37:38 -0700
+
+emacs-snapshot (28~git20200806.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Thu, 06 Aug 2020 16:35:04 -0700
+
+emacs-snapshot (28~git20200726.1) unstable; urgency=medium
+
+ * Package git snapshot.
+
+ -- Sean Whitton <spwhitton@spwhitton.name> Wed, 05 Aug 2020 16:42:49 -0700
diff --git a/debian/control b/debian/control
new file mode 100644
index 00000000000..02380cc33f5
--- /dev/null
+++ b/debian/control
@@ -0,0 +1,44 @@
+Source: emacs-snapshot
+Section: editors
+Priority: optional
+Maintainer: Sean Whitton <spwhitton@spwhitton.name>
+Build-Depends:
+ autoconf,
+ automake,
+ bsd-mailx | mailx,
+ dbus-x11,
+ debhelper-compat (= 12),
+ dh-exec,
+ gnupg-agent,
+ imagemagick,
+ libacl1-dev,
+ libasound2-dev,
+ libdbus-1-dev,
+ libgccjit-12-dev,
+ libgif-dev,
+ libgnutls28-dev,
+ libgpm-dev,
+ libgtk-3-dev,
+ libjpeg-dev,
+ liblockfile-dev,
+ libm17n-dev,
+ libmagick++-6.q16-dev,
+ libncurses5-dev,
+ libotf-dev,
+ libpng-dev,
+ librsvg2-dev,
+ libselinux1-dev,
+ libsystemd-dev,
+ libtiff-dev,
+ libxaw7-dev,
+ libxml2-dev,
+ procps,
+ sharutils,
+ texinfo,
+ xaw3dg-dev,
+ zlib1g-dev,
+
+Package: emacs-snapshot
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Description: Emacs git snapshot
diff --git a/debian/dirs b/debian/dirs
new file mode 100644
index 00000000000..057f2009f6c
--- /dev/null
+++ b/debian/dirs
@@ -0,0 +1 @@
+/usr/share/emacs-snapshot/site-lisp/elpa
diff --git a/debian/emacs-snapshot.sh b/debian/emacs-snapshot.sh
new file mode 100644
index 00000000000..12c67a4a44a
--- /dev/null
+++ b/debian/emacs-snapshot.sh
@@ -0,0 +1,3 @@
+if [ "`id -u`" -ne 0 ]; then
+ PATH=/opt/emacs-snapshot/bin:$PATH
+fi
diff --git a/debian/install b/debian/install
new file mode 100755
index 00000000000..f54a4f644b4
--- /dev/null
+++ b/debian/install
@@ -0,0 +1,3 @@
+#!/usr/bin/dh-exec
+debian/emacs-snapshot.sh => /etc/profile.d/emacs-snapshot.sh
+debian/emacs-snapshot.sh => /etc/X11/Xsession.d/01emacs-snapshot
diff --git a/debian/links b/debian/links
new file mode 100644
index 00000000000..12be0815e45
--- /dev/null
+++ b/debian/links
@@ -0,0 +1 @@
+/opt/emacs-snapshot/bin/emacs /usr/bin/emacs-snapshot
diff --git a/debian/merge-snapshot b/debian/merge-snapshot
new file mode 100755
index 00000000000..18acea9115e
--- /dev/null
+++ b/debian/merge-snapshot
@@ -0,0 +1,37 @@
+#!/usr/bin/perl
+
+use 5.028;
+use strict;
+use warnings;
+
+use Cwd;
+use Git::Wrapper;
+
+my $git = Git::Wrapper->new(getcwd);
+
+($git->rev_parse({ abbrev_ref => 1 }, "HEAD"))[0] eq "athena/unstable"
+ or die "on wrong branch!";
+
+my ($to_merge) = $git->merge_base("melete", "origin/master");
+
+chomp(my $prev_version = `dpkg-parsechangelog -SVersion`);
+chomp(my $prev_distn = `dpkg-parsechangelog -SDistribution`);
+
+my ($prev_date, $prev_rev) = ($prev_version =~ /git([0-9]+).([0-9]+)/);
+my ($new_date) = $git->show("-s", { format => "%ci" }, $to_merge);
+$new_date =~ /\A([0-9]{4})-([0-9]{2})-([0-9]{2})/
+ or die "couldn't parse new commit committer date";
+$new_date = $1 . $2 . $3;
+my $new_rev = $prev_date eq $new_date ? $prev_rev + 1 : 1;
+
+$git->merge({
+ message =>
+ "Merge remote-tracking branch 'origin/master' into athena/unstable"
+ },
+ $to_merge
+);
+
+system "dch", "-v29~git${new_date}.${new_rev}",
+ $prev_distn eq "UNRELEASED" ? "" : "Package git snapshot.";
+$git->add("debian/changelog");
+$git->commit({ message => "changelog" });
diff --git a/debian/postinst b/debian/postinst
new file mode 100755
index 00000000000..6e1fde4934b
--- /dev/null
+++ b/debian/postinst
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+set -e
+
+/usr/lib/emacsen-common/emacs-install emacs-snapshot
+
+#DEBHELPER#
diff --git a/debian/prerm b/debian/prerm
new file mode 100755
index 00000000000..e72305bba57
--- /dev/null
+++ b/debian/prerm
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+set -e
+
+/usr/lib/emacsen-common/emacs-remove emacs-snapshot
+
+#DEBHELPER#
diff --git a/debian/rules b/debian/rules
new file mode 100755
index 00000000000..d03b58c15d1
--- /dev/null
+++ b/debian/rules
@@ -0,0 +1,25 @@
+#!/usr/bin/make -f
+
+export NATIVE_FULL_AOT = 1
+
+%:
+ dh $@
+
+override_dh_update_autotools_config:
+ cp -a /usr/share/misc/config.guess /usr/share/misc/config.sub .
+
+override_dh_autoreconf:
+ ./autogen.sh
+
+override_dh_auto_configure:
+ ./configure --prefix=/opt/emacs-snapshot \
+ --with-native-compilation --with-pgtk
+
+override_dh_shlibdeps:
+ dh_shlibdeps --dpkg-shlibdeps-params=--ignore-missing-info
+
+# ensure .elc files are newer than their counterparts to prevent
+# recursive load errors with jka-compr.el (see #803462)
+override_dh_strip_nondeterminism:
+
+override_dh_auto_test:
diff --git a/debian/source/format b/debian/source/format
new file mode 100644
index 00000000000..89ae9db8f88
--- /dev/null
+++ b/debian/source/format
@@ -0,0 +1 @@
+3.0 (native)
diff --git a/debian/source/patch-header b/debian/source/patch-header
new file mode 100644
index 00000000000..69436f69f1c
--- /dev/null
+++ b/debian/source/patch-header
@@ -0,0 +1,8 @@
+The Debian packaging of emacs-snapshot is maintained in git, using the
+merging workflow described in dgit-maint-merge(7). There isn't a
+patch queue that can be represented as a quilt series.
+
+A detailed breakdown of the changes is available from their canonical
+representation - git commits in the packaging repository.
+
+A single combined diff, containing all the changes, follows.
diff --git a/lisp/emacs-lisp/package.el b/lisp/emacs-lisp/package.el
index ed23ee5f221..24880a66a05 100644
--- a/lisp/emacs-lisp/package.el
+++ b/lisp/emacs-lisp/package.el
@@ -312,6 +312,7 @@ packages in `package-directory-list'."
(and (stringp f)
(equal (file-name-nondirectory f) "site-lisp")
(push (expand-file-name "elpa" f) result)))
+ (push "/usr/share/emacs-snapshot/site-lisp/elpa" result)
(nreverse result))
"List of additional directories containing Emacs Lisp packages.
Each directory name should be absolute.
diff --git a/lisp/startup.el b/lisp/startup.el
index b0fbf7a34cd..fe68c0f8a6f 100644
--- a/lisp/startup.el
+++ b/lisp/startup.el
@@ -1449,7 +1449,12 @@ please check its value")
;; be loaded from site-run-file and wants to test if -q was given
;; should check init-file-user instead, since that is already set.
;; See cus-edit.el for an example.
- (if site-run-file
+ (when site-run-file
+ (let ((file "/etc/emacs/site-start.d/00debian.el"))
+ ;; When the Emacs build invokes Emacs, such as in the
+ ;; Makefile rule for ${unidir}/emoji-labels.el, 00debian.el
+ ;; might not exist. Should be fine to just skip the load.
+ (when (file-readable-p file) (load file)))
;; Sites should not disable the startup screen.
;; Only individuals should disable the startup screen.
(let ((inhibit-startup-screen inhibit-startup-screen))