어떻게 PKGBUILD 파일을 작성했는지에 대한 수정 내역을 잘게 쪼개서 commit 했습니다.
PKGBUILD 에 저작권 정보를 넣는다는게 참 웃긴 일이긴 한데,
그럴 만한 이유가 있으니 비웃지는 말아주세요.
2018.07.25 내용 추가
nimf 프로젝트의 다른 파일들과는 달리, 이제 PKGBUILD 파일은 저작권이 없습니다. 이제 PKGBUILD 는 퍼블릭 도메인에 있습니다.
commit c6fd358553d814a0f912d9454c896ba492e02633
Author: Hodong Kim <cogniti@gmail.com>
Date: Wed Jul 25 23:20:57 2018 +0900
Now this PKGBUILD file is in the public domain
커밋 내역은 아래 보시면 되겠습니다.
제가 잠도 못자고 너무 피곤해서 로그를 복사 / 붙여넣기 하면서 누락된게 있을지도 모르겠습니다.
자세한 내역은
https://gitlab.com/nimf-i18n/nimf/commits/master
에 있으니 확인하시기 바랍니다.
commit 90c68ab13b44ee8c46d281763f833654aed429b3
Author: Hodong Kim <cogniti@gmail.com>
Date: Sun Jul 22 20:58:09 2018 +0900
I wrote these files myself. But I delete these files because there is misunderstanding.
commit 49e4662d07645de9a5f7bca1a3452d461eaa5df8
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 00:19:37 2018 +0900
아치리눅스 사이트에서 예제파일 PKGBUILD.proto 을 가져옵니다.
예제 파일 주소는 다음과 같씁니다.
https://git.archlinux.org/pacman.git/plain/proto/PKGBUILD.proto
commit e7f558cd30105d4819e10927aaf5e671d765eeb2
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 00:24:47 2018 +0900
파일이름을 PKGBUILD.proto 에서 PKGBUILD 로 변경합니다.
commit 7c85452b67e22e894f60bff796b5221910233736
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 21:12:52 2018 +0900
주석문 삭제, 저작권 정보 추가, pkgname, license 정보 추가합니다
아치리눅스 nimf-git AUR 에 올릴 것이 아니기 때문에
pkgname=nimf 로 합니다.
Copyright (C) 2018 Hodong Kim <cogniti@gmail.com>
김호동 본인이 작성한 파일이기 때문에 김호동이 저작권을 보유합니다.
파일 진위 여부 및 미래에 발생될 수 있는 문제에 대비하기 위해 저작권 정보를
넣습니다.
license=('LGPL3')
commit 040f622ad3b29e2b04ef8e4be1f3db93f26b9bad
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 21:27:12 2018 +0900
pkgver 을 master 로 변경합니다.
pkgver 은 pkgver() 함수로부터 변경될 수 있습니다.
https://wiki.archlinux.org/index.php/PKGBUILD
makepkg can automatically update this variable by defining a pkgver()
function in the PKGBUILD.
commit 1b26ceb61c56b69512c2dcb71a0be3dbf5f49b85
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 21:29:58 2018 +0900
epoch= 삭제합니다.
https://wiki.archlinux.org/index.php/PKGBUILD 설명에 따르면
When a new version of the software is released, this value must be reset
to 1. 신버전이 릴리즈될 때, 1 이어야 한다고 되어 있습니다.
그래서 pkgrel=1 로 그대로 둡니다.
epoch= 는
설명에 따르면
pkgver=5.13
pkgrel=2
epoch=1
1:5.13-2
이런식으로 되는 건데 epoch 는 사용할 일이 없으므로 삭제합니다.
commit 130c6198e9191f86a0ea90580e52aabc72165e0e
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 21:33:56 2018 +0900
pkgdesc="Nimf is an input method framework."
제가 nimf 원저자입니다. 저 문구를 제가 만들었습니다.
commit 241cce44d0a89b0906238d83e252f493d4b715ac
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 21:37:46 2018 +0900
arch=('any') 로 합니다.
nimf 는 x86_64, i686, arm 에서도 컴파일이 가능합니다.
https://wiki.archlinux.org/index.php/PKGBUILD 에 따르면
If a package is architecture-independent in its compiled state (shell
scripts, fonts, themes, many types of extensions, etc.) then use
arch=('any'). 이렇게 설명되어 있지만,
arch 를 특정하기 애매하므로 any 로 합니다.
commit c94b9b0cc29f3cb70c39677fdbcef0db7dfa27dd
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 21:39:57 2018 +0900
url="https://gitlab.com/nimf-i18n/nimf"
commit 3f63dd97f1555aa3b4d482c383ecda4ace5e1296
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 21:41:28 2018 +0900
groups=() 삭제합니다.
groups=() 항목이 없어도 작동하는데 지장이 없습니다.
작성하기 귀찮으므로 삭제합니다.
commit 7151baa707ea0a54f796e8c79b46b66180434a4a
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 21:46:28 2018 +0900
checkdepends=() 삭제합니다.
사용할 일이 없습니다
commit bce5cabc547a7b63ce658b39f1d708d37f74cfe5
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 21:49:55 2018 +0900
순서를 변경합니다
makedepends=()
depends=()
optdepends=()
이런 순서가 되도록 변경합니다.
변경하지 않아도 작동에는 상관이 없지만,
저는 제가 작성한 debian/control 파일을 참고하여 만들 것이기 때문에
debian/control 에 나오는 순서대로 변경합니다
commit 9624ecffe7c81d97009a2bdd7cb926075eacbba3
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 21:52:21 2018 +0900
makedepends 를 작성합니다.
debian/control 파일내에 Build-Depends 에 대응합니다.
Source: nimf
Section: utils
Priority: optional
Maintainer: Hodong Kim <cogniti@gmail.com>
Build-Depends: debhelper (>= 9),
dh-autoreconf,
libglib2.0-dev,
pkg-config,
intltool (>= 0.50.1),
libgtk-3-dev,
libgtk-3-bin,
libgtk2.0-dev,
libqt4-dev,
qtbase5-dev,
qtbase5-private-dev,
libappindicator3-dev,
librsvg2-bin,
fonts-noto-cjk,
libhangul-dev,
libanthy-dev,
anthy,
libchewing3-dev,
librime-dev (>= 1.2.9),
libxkbcommon-dev (>= 0.5.0),
libwayland-dev,
wayland-protocols,
libaudit-dev
대응되는 아치리눅스 패키지 이름은 https://www.archlinux.org/packages/ 에서 찾을
수 있습니다.
commit 6ff7b42e07f41b3370d6a08a1c3347d81db84fc9
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 21:57:11 2018 +0900
depends 를 작성합니다.
여기에 들어갈 내용은
제가 작성한 configure.ac 파일과
제가 작성한 debian/control
제가 지금 작성하고 있는 PKGBUILD 파일 내에 makedepends 내에 있습니다.
작업의 편의상 makedepends 에 있는 내용 중에, 컴파일할 때만 필요한
패키지를 없앱니다. 그렇게 하면 실행할 때 필요한 것만 남습니다.
제가 nimf 원저자입니다.
nimf 는 제가 만들었고 nimf 가 필요로 하는 라이브러리를
원저자인 제가 당연히 알고 있습니다. 제가 최초로 작성한 것입니다.
commit 8998e4a7032d4c49527903a7029f079bbf701dfd
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 23:09:24 2018 +0900
optdepends 내용 추가합니다.
https://wiki.archlinux.org/index.php/PKGBUILD 문서에 따르면
optdepends=('cups: printing support'
'sane: scanners support'
'libgphoto2: digital cameras support'
'alsa-lib: sound support'
'giflib: GIF images support'
'libjpeg: JPEG images support'
'libpng: PNG images support')
이런 식으로 작성하라고 나와 있습니다.
debian/control 에서 Recommends, Suggests 항목에 대응합니다.
없어도 nimf 가 작동하는데, 있으면 좋은 패키지입니다.
optdepends=('brise: Rime schema repository'
'noto-fonts-cjk: Google Noto CJK fonts'
'xorg-setxkbmap: Set the keyboard using the X Keyboard
Extension')
그래서 이렇게 작성을 했습니다.
brise 패키지는 GPL 라이선스이기 때문에 depends 에 넣으면 안 됩니다.
nimf 는 LGPL 라이선스이며 brise 없어도 작동합니다.
gnome-tweaks (gnome-tweak-tool) 가 debian/control 에 있지만,
nimf-libhangul 에 xkb 옵션을 설정할 수 있는 기능이 있으므로,
gnome-tweaks 는 필요하지 않습니다.
제가 깜박하고 debian/control 에서 gnome-tweak-tool 을 삭제하지 않았네요.
commit b5a35acabea66fbfe7071d1d16952928c31b4709
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 23:31:01 2018 +0900
provides=() conflicts=() replaces=() backup=() options=() install= changelog= 삭제합니다.
provides=()
conflicts=()
replaces=()
backup=()
options=()
install=
changelog=
없어도 작동합니다. 있으면 업데이트할 때 번거롭기 때문에 삭제합니다.
commit 81d7cabffff25f8e4c6345da4b526079d469e35f
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 23:33:32 2018 +0900
source 주소를 설정합니다.
source=("https://gitlab.com/nimf-i18n/nimf/-/archive/master/nimf-master.tar.bz2")
commit 1658804af98fcce5dfd313ed376a33336346ede5
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 23:35:25 2018 +0900
extract=() 삭제합니다.
commit d107d97c3714cad7ac03eb0c8738de3efa89ba27
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 23:37:09 2018 +0900
md5sums=('SKIP') 체크하지 않습니다.
https://gitlab.com/nimf-i18n/nimf/-/archive/master/nimf-master.tar.bz2
이 파일은 최신 파일입니다. commit 할 때마다 변경됩니다.
저는 pkgver 의 버전을 특정하지 않았습니다.
pkgver 을 특정하면 nimf 를 업데이트할 때마다 PKGBUILD 업데이트해야
하는데 매우 번거롭기 때문에 pkgver 을 특정하지 않습니다.
그래서 다이제스트를 스킵합니다.
commit db7494507a1621d05be9fa7b9fa5992bccbd18dc
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 23:40:16 2018 +0900
validpgpkeys=() 불필요하여 삭제합니다.
commit 6eca529bb7613fbc849470f7c056a9ae40cdf692
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 23:42:21 2018 +0900
pkgver() 추가합니다. 패키지 버전을 동적으로 업데이트 합니다.
https://wiki.archlinux.org/index.php/PKGBUILD 에 따르면
makepkg can automatically update this variable by defining a pkgver()
function in the PKGBUILD.
pkgver() 으로 자동으로 pkgver 변수를 업데이트할 수 있다고 나와 있습니다.
grep AC_INIT configure.ac | grep -Po '\d{4}.\d{2}.\d{2}'
정규표현식으로 패키지 버전을 grep 합니다.
2018.07.20 이런 형식이 grep 됩니다.
commit b49e9ea08fea192b4329c86d5b0579a0fc9897ba
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 23:47:01 2018 +0900
prepare() 불필요하여 삭제합니다.
commit feb20a6dd2dc11a8284613e39c440752d7f42264
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 23:50:20 2018 +0900
build() 를 작성합니다.
제가 nimf 원저자이고 제가 작성한 nimf/README 파일에 나와 있습니다.
commit aa2d29b63b5cca4d488bf65c33051ada076bd7c2
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 23:52:33 2018 +0900
check() 불필요하여 삭제합니다.
commit 5055bc706728252fb6aff7af7d9b90c680c84a9f
Author: Hodong Kim <cogniti@gmail.com>
Date: Mon Jul 23 23:54:21 2018 +0900
package() 작성합니다.
제가 nimf 원저자이며 제가 작성한 nimf/README, Makefile.am 에 나와
있습니다.
commit 15291a7174e416f6a05e6b83bf11919b25c095b5
Author: Hodong Kim <cogniti@gmail.com>
Date: Tue Jul 24 00:02:50 2018 +0900
저작권, 라이선스 정보 추가합니다.
본 PKGBUILD 파일은
dasom 의 원저자이자 nimf 의 원저자인 김호동이 자신의 창작물을 토대로
https://wiki.archlinux.org/index.php/PKGBUILD 형식에 맞추어
작성한 파일입니다.
본 PKGBUILD 파일에 대한 저작권이 김호동에게 있습니다.
댓글 없음:
댓글 쓰기