Yunseong,

Thank you for your work on this.  As a next step, I would recommend you upload 
the package to the Mentors website.

https://mentors.debian.net/

That will assist you in finding a sponsor.

On Tuesday, August 27, 2024 11:17:37 AM MST Yunseong Kim wrote:
> Hi debian mentor and debian-go member,
> 
> This is my first time working on Debian packaging, so I need some advice.
> 
> This link is my syzkaller repository on salsa.
> Link:
> https://salsa.debian.org/yunseongkim/syzkaller/-/tree/debian?ref_type=heads
> 
> This is the dpkg-buildpackage log.
> Link: https://paste.debian.net/1327693/
> 
> On 8/28/24 3:10 오전, Yunseong Kim wrote:
> > Initially packaging works for syzkaller
> > 
> > Signed-off-by: Yunseong Kim <ysk...@gmail.com>
> > ---
> > 
> >  debian/.gitignore    |  3 ++
> >  debian/changelog     |  5 +++
> >  debian/compat        |  1 +
> >  debian/control       | 12 +++++++
> >  debian/copyright     | 26 ++++++++++++++
> >  debian/files         |  2 ++
> >  debian/rules         | 84 ++++++++++++++++++++++++++++++++++++++++++++
> >  debian/source/format |  1 +
> >  8 files changed, 134 insertions(+)
> >  create mode 100644 debian/.gitignore
> >  create mode 100644 debian/changelog
> >  create mode 100644 debian/compat
> >  create mode 100644 debian/control
> >  create mode 100644 debian/copyright
> >  create mode 100644 debian/files
> >  create mode 100755 debian/rules
> >  create mode 100644 debian/source/format
> > 
> > diff --git a/debian/.gitignore b/debian/.gitignore
> > new file mode 100644
> > index 000000000..29aca38cb
> > --- /dev/null
> > +++ b/debian/.gitignore
> > @@ -0,0 +1,3 @@
> > +syzkaller/
> > +syzkaller.substvars
> > +syzkaller.debhelper.log
> > diff --git a/debian/changelog b/debian/changelog
> > new file mode 100644
> > index 000000000..e4d028bb5
> > --- /dev/null
> > +++ b/debian/changelog
> > @@ -0,0 +1,5 @@
> > +syzkaller (20240826+e4f3ea1bc2e0) unstable; urgency=medium
> > +
> > +  * New upstream release)
> > +
> > + -- Yunseong Kim <ysk...@gmail.com>  Sat, 24 Aug 2024 14:47:08 +0800
> > diff --git a/debian/compat b/debian/compat
> > new file mode 100644
> > index 000000000..ec635144f
> > --- /dev/null
> > +++ b/debian/compat
> > @@ -0,0 +1 @@
> > +9
> > diff --git a/debian/control b/debian/control
> > new file mode 100644
> > index 000000000..8cc29056b
> > --- /dev/null
> > +++ b/debian/control
> > @@ -0,0 +1,12 @@
> > +Source: syzkaller
> > +Section: main
> > +Priority: optional
> > +Maintainer: Yunseong Kim <ysk...@gmail.com>
> > +Build-Depends: debhelper (>= 9), dh-golang, golang-go:native (>= 1.3.0)
> > +Standards-Version: 3.9.6
> > +
> > +Package: syzkaller
> > +Architecture: arm64
> > +Depends: ${shlibs:Depends}, ${misc:Depends}
> > +Built-Using: ${misc:Built-Using}
> > +Description: syzkaller is an unsupervised coverage-guided kernel fuzzer
> > diff --git a/debian/copyright b/debian/copyright
> > new file mode 100644
> > index 000000000..855f4c5bf
> > --- /dev/null
> > +++ b/debian/copyright
> > @@ -0,0 +1,26 @@
> > +Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
> > +Upstream-Name: syzkaller
> > +Source: https://github.com/google/syzkaller
> > +
> > +Files: *
> > +Copyright: 2024 Yunseong Kim
> > +License: Apache License 2.0
> > + Copyright (c) 2024 Yunseong Kim
> > + .
> > + Permission is hereby granted, free of charge, to any person obtaining a
> > copy + of this software and associated documentation files (the
> > "Software"), to deal + in the Software without restriction, including
> > without limitation the rights + to use, copy, modify, merge, publish,
> > distribute, sublicense, and/or sell + copies of the Software, and to 
permit
> > persons to whom the Software is + furnished to do so, subject to the
> > following conditions:
> > + .
> > + The above copyright notice and this permission notice shall be included 
in
> > all + copies or substantial portions of the Software.
> > + .
> > + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
OR
> > + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
> > + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
> > THE
> > + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
> > + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
> > FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
> > DEALINGS IN THE + SOFTWARE.
> > diff --git a/debian/files b/debian/files
> > new file mode 100644
> > index 000000000..d77937778
> > --- /dev/null
> > +++ b/debian/files
> > @@ -0,0 +1,2 @@
> > +syzkaller_20240826+e4f3ea1bc2e0_arm64.buildinfo main optional
> > +syzkaller_20240826+e4f3ea1bc2e0_arm64.deb main optional
> > diff --git a/debian/rules b/debian/rules
> > new file mode 100755
> > index 000000000..eacb4e9a5
> > --- /dev/null
> > +++ b/debian/rules
> > @@ -0,0 +1,84 @@
> > +#!/usr/bin/make -f
> > +
> > +export DH_OPTIONS
> > +
> > +##
> > +# From git-lfs/git-lfs repo:
> > +# Looks like dh_golang doesn't set diffrent archs, so you have to do them
> > semi-manually. +##
> > +
> > +## This if-structure is decided on what is passed by the -a flag by
> > dpkg-buildpackage command. +ifeq ($(DEB_HOST_ARCH), i386)
> > +   export GOARCH := 386
> > +else ifeq ($(DEB_HOST_ARCH), amd64)
> > +   export GOARCH := amd64
> > +else ifeq ($(DEB_HOST_ARCH), armhf)
> > +   export GOARCH := arm
> > +   # May need to set GOARM as well if your going to target ARM. But for 
now
> > this works. +else ifeq ($(DEB_HOST_ARCH), arm64)
> > +   export GOARCH := arm64
> > +endif
> > +
> > +# Or add your arch that your targeting, these are just examples.
> > +
> > +# Directory where compiled binary is placed + debian setup files.
> > +# Note: If your doing building thru git, you may want to add obj-* to
> > .gitignore +BUILD_DIR := obj-$(DEB_HOST_GNU_TYPE)
> > +
> > +# Required: Put the url (without http://) of your git repo.
> > +export DH_GOPKG := github.com/google/syzkaller
> > +
> > +# Required: Put the name of your git repo below.
> > +GIT_REPO_NAME := syzkaller
> > +
> > +export PATH := $(CURDIR)/$(BUILD_DIR)/bin:$(PATH)
> > +
> > +##
> > +# by-default, dh_golang only copies *.go and other source - this upsets a
> > bunch of vendor test routines +##
> > +export DH_GOLANG_INSTALL_ALL := 1
> > +
> > +%:
> > +   dh $@ --buildsystem=golang --with=golang
> > +
> > +override_dh_clean:
> > +   rm -f debian/debhelper.log
> > +   dh_clean
> > +
> > +override_dh_auto_build:
> > +   #dh_auto_build
> > +   make CFLAGS=""
> > +   ##
> > +   # From git-lfs/git-lfs repo:
> > +   # dh_golang doesn't do anything here in deb 8, and it's needed in both
> > +   ##
> > +   if [ "$(DEB_HOST_GNU_TYPE)" != "$(DEB_BUILD_GNU_TYPE)" ]; then\
> > +           cp -rf $(BUILD_DIR)/bin/*/* $(BUILD_DIR)/bin/; \
> > +   fi
> > +
> > +override_dh_strip:
> > +   ##
> > +   # From git-lfs/git-lfs repo:
> > +   # strip disabled as golang upstream doesn't support it and it makes go
> > crash. +    # See https://launchpad.net/bugs/1200255.
> > +   ##
> > +
> > +override_dh_golang:
> > +   ##
> > +   # From git-lfs/git-lfs repo:
> > +   # The dh_golang is used to add the Built-using field to the deb.  This 
is
> > only for reference. +       # As of
> > https://anonscm.debian.org/cgit/collab-maint/dh-golang.git/commit/script/
dh
> > _golang?id=7c3fbec6ea92294477fa8910264fe9bd823f21c3 +       # dh_golang 
errors out
> > because the go compiler used was not installed via a package.  Therefore
> > the step is skipped +       ##
> > +
> > +override_dh_auto_test:
> > +   make -j1 test
> > +
> > +override_dh_auto_install:
> > +   # This is making a "fakeroot" so that when the deb is installed the 
binary
> > will be placed in /usr/bin. +       mkdir -p 
> > debian/$(GIT_REPO_NAME)/usr/bin/
> > +   mkdir -p debian/$(GIT_REPO_NAME)/usr/share/doc/syzkaller/
> > +   # This is copying the binary and placing it in the fake root path.
> > +   cp -r docs/ debian/$(GIT_REPO_NAME)/usr/share/doc/syzkaller/
> > +   cp bin/*_*/syz-* bin/syz-* debian/$(GIT_REPO_NAME)/usr/bin/
> > +
> > diff --git a/debian/source/format b/debian/source/format
> > new file mode 100644
> > index 000000000..89ae9db8f
> > --- /dev/null
> > +++ b/debian/source/format
> > @@ -0,0 +1 @@
> > +3.0 (native)
> 
> Please feel free to let me know if there are any improvements needed
> after reviewing the code. Thank you!
> 
> Warm regards,
> Yunseong Kim


-- 
Soren Stoutner
so...@debian.org

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to