First PKGBUILD, comments are welcomed
Hi,
I adopted the orphan package Selfoss and modified the PKGBUILD and .install files. Since this is my first one, I thought I post it here first. So if anybody has any input I would really appreciate it.
The two big differences between my PKGBUILD and the original is that I moved the config file to /etc/selfoss/.. and that I keep the old data folder (on upgrades). I keep the data folder because the selfoss homepage states that you should on upgrades
Upload all new files and folders excluding the data folder
My main concern is this folder thing (which I do in the .install file). My suspicion is that I maybe don't need to restore the old data folder. I made some quick tests, and it looked like pacman kept everything that had been added or modified after the last install. But I really don't know when or how pacman will change stuff on a upgrade. So I started looking for answers. First on the wiki, like on pages about ABS, PKGBUILD, creating packages and the Arch packaging standards and then on the forum. But I didn't find it..
Anyhow, here's my PKGBUILD and .install . Thanks in advance!
PKGBUILD
# Maintainer: Maxim Andersson <[email protected]>
# Contributor: Tetsumaki <http://goo.gl/YMBdA>
pkgname=selfoss
pkgver=2.9
pkgrel=1
pkgdesc="The new multipurpose rss reader, live stream, mashup, aggregation web application"
arch=('any')
url="http://selfoss.aditu.de/"
license=('GPL3')
depends=('php>=5.3')
optdepends=('apache: is depedency if you do not use lighttpd or nginx'
'lighttpd'
'nginx'
'mariadb: is depedency if you do not use postgresql or sqlite'
'postgresql'
'sqlite'
'php-sqlite: is dependacy if you use sqlite'
'wget: for automatic updating feeds with cron'
'curl: for automatic updating feeds with cron')
conflicts=('selfoss-git')
backup=('etc/webapps/selfoss/config.ini')
install=${pkgname}.install
source=("http://selfoss.aditu.de/${pkgname}-${pkgver}.zip"
"${pkgname}.install")
sha256sums=('9bf3642c7de146c1a89c336ad5fc77e1823d125d7dbfed9060c6c7c2cdc8ec39'
'f59a0de2ee13d83a263a8f1a0c25ee3542e1981d6ead19af299999818975e142')
package() {
rm -rf README.md ${pkgname}-${pkgver}.zip
install -d "${pkgdir}"/usr/share/webapps/${pkgname}
cp -rf . "${pkgdir}"/usr/share/webapps/${pkgname}/
# move config to etc
install -d "${pkgdir}"/etc/webapps/${pkgname}
sed '4,$s/^/;/' "${pkgdir}"/usr/share/webapps/${pkgname}/defaults.ini > "${pkgdir}"/etc/webapps/${pkgname}/config.ini
chmod 755 "${pkgdir}"/usr/share/webapps/${pkgname}/{data/cache,data/favicons,data/logs,data/sqlite,data/thumbnails,public}
chown -R http: "${pkgdir}"/usr/share/webapps/${pkgname}
# vim:set ts=2 sw=2 et:
selfoss.install
link_config() {
ln -sf /etc/webapps/selfoss/config.ini /usr/share/webapps/selfoss/config.ini
chown http: /usr/share/webapps/selfoss/config.ini
post_install() {
link_config
echo ""
echo "==> Installed in : /usr/share/webapps/selfoss"
echo "==> Change RewriteBase in .htaccess"
echo "==> Check http://selfoss.aditu.de/ for details."
echo ""
echo "==> Config is now at /etc/webapps/selfoss/config.ini"
echo ""
pre_upgrade() {
# save old config (from pkgbuild 2.8)
[[ -f /usr/share/webapps/selfoss/config.ini && ! -f /etc/webapps/selfoss/config.ini ]] \
&& install -Dm644 /usr/share/webapps/selfoss/config.ini /etc/webapps/selfoss/config.ini
[[ -f /usr/share/webapps/selfoss/config.ini && -f /etc/webapps/selfoss/config.ini ]] \
&& install -Dm644 /usr/share/webapps/selfoss/config.ini /etc/webapps/selfoss/config.ini.backup
# temporarily backup data folder
rm -rf /tmp/data
cp -rf /usr/share/webapps/selfoss/data /tmp/ 2> /dev/null
post_upgrade() {
link_config
# restore data folder
if [[ -d /tmp/data ]]; then
rm -rf /usr/share/webapps/selfoss/data
cp -rf /tmp/data /usr/share/webapps/selfoss/
fi
rm -f /usr/share/webapps/selfoss/public/{all.css,all.js}
[[ -d /usr/share/webapps/selfoss/data/icons ]] \
&& mv -f /usr/share/webapps/selfoss/data/{icons,favicons}
echo ""
echo "==> For a clean update:"
echo "==> Change RewriteBase in .htaccess"
echo "==> Refresh your browser cache (CTRL+R in most cases)"
echo "==> Check http://selfoss.aditu.de/ for details."
echo ""
echo "==> Config is now at /etc/webapps/selfoss/config.ini"
echo ""
For reference, here's the AUR page with the old PKGBUILD.
Ok, so here's how my PKGBUILD and .install looks like now.
PKGBUILD
# Maintainer: Maxim Andersson <[email protected]>
# Contributor: Tetsumaki <http://goo.gl/YMBdA>
pkgname=selfoss
pkgver=2.9
pkgrel=1
pkgdesc="The new multipurpose rss reader, live stream, mashup, aggregation web application"
arch=('any')
url="http://selfoss.aditu.de/"
license=('GPL3')
depends=('php>=5.3')
optdepends=('apache: server, depedency if not using lighttpd or nginx'
'lighttpd: server, depedency if not using apache or nginx'
'nginx: server, depedency if not using lighttpd or apache'
'mariadb: database, depedency if not using postgresql or sqlite'
'postgresql: database, depedency if not using mariadb or sqlite'
'sqlite: database, depedency if not using postgresql or mariadb'
'php-sqlite: dependency if using sqlite'
'wget: for automatic updating feeds with cron'
'curl: for automatic updating feeds with cron')
backup=('etc/webapps/selfoss/config.ini')
install=${pkgname}.install
source=("http://selfoss.aditu.de/${pkgname}-${pkgver}.zip")
sha256sums=('9bf3642c7de146c1a89c336ad5fc77e1823d125d7dbfed9060c6c7c2cdc8ec39')
package() {
rm -rf "${srcdir}"/{README.md,${pkgname}-${pkgver}.zip}
install -d "${pkgdir}"/usr/share/webapps/${pkgname}
cp -af "${srcdir}"/. "${pkgdir}"/usr/share/webapps/${pkgname}/
# create config in /etc
install -d "${pkgdir}"/etc/webapps/${pkgname}
sed '4,$s/^/;/' "${pkgdir}"/usr/share/webapps/${pkgname}/defaults.ini > "${pkgdir}"/etc/webapps/${pkgname}/config.ini
ln -sf /etc/webapps/${pkgname}/config.ini "${pkgdir}"/usr/share/webapps/${pkgname}/config.ini
chmod 755 "${pkgdir}"/usr/share/webapps/${pkgname}/{data/cache,data/favicons,data/logs,data/sqlite,data/thumbnails,public}
chown -R http: "${pkgdir}"/usr/share/webapps/${pkgname}
# vim:set ts=2 sw=2 et:
.install
post_install() {
echo ""
echo "==> Installed in : /usr/share/webapps/selfoss"
echo "==> Change RewriteBase in .htaccess"
echo "==> Check http://selfoss.aditu.de/ for details."
echo ""
echo "==> Config is now at /etc/webapps/selfoss/config.ini"
echo ""
pre_upgrade() {
# save old untracked config (from pkgbuild 2.8) and make it tracked
[[ -f /usr/share/webapps/selfoss/config.ini && ! -h /usr/share/webapps/selfoss/config.ini ]] \
&& install -Dm644 /usr/share/webapps/selfoss/config.ini /etc/webapps/selfoss/config.ini
post_upgrade() {
rm -f /usr/share/webapps/selfoss/public/{all.css,all.js}
echo ""
echo "==> For a clean update:"
echo "==> Change RewriteBase in .htaccess"
echo "==> Refresh your browser cache (CTRL+R in most cases)"
echo "==> Check http://selfoss.aditu.de/ for details."
echo ""
echo "==> Config is now at /etc/webapps/selfoss/config.ini"
echo ""
pre_remove() {
# remove untracked files
find /usr/share/webapps/selfoss/data/ -type f -exec rm -f '{}' ';' 2> /dev/null
rm -f /usr/share/webapps/selfoss/public/{all.css,all.js}
Thanks for all the time you spent explainting stuff! Really appreciate it. Can't wait to adopt a new PKGBUILD or maybe make a new one
The only thing I wasn't able to do was to put the data directory in /var/lib/. On upgrades pacman complained about the new link (ln -s /var/lib/.. data), because it was already tracking a directory with the same name ('data'). But that's no big deal.
Last edited by thesilentboatman (2014-02-10 17:13:22)
Similar Messages
-
I've written a small app using AppleScript and Growl.
It puts the lyrics of the current iTunes' selected or playing song in a (Growl)window.
Both Growl and my app are free.
My point is, if you like the app as it is great. Keep it and have fun. However, if you do not or have any criticisms and suggestions, I'd like to hear them.
Thank you.
DeivyHi James,
first, I do not have any connections with the Growl team, unfortunately.
Growl is an application that receives messages from other applications and passes these messages to the user.
So, if you use HarwareGrowl, which I really recommend, if you connect a device (say a printer) to your USB port, it will display a window with a message stating that "the printer X was connected in USB port y" or something to this order. Which is excellent to diagnose any possible USB connection problem.
In the case of the script I wrote, the window will display the lyrics of the current playing song.
You can read more about Growl in its website.
Independent of using my script, I really recommend Growl.
Deivy -
Contribution, Ideas and comment are welcomed
By seeing this problem of classpath every day, can't we create a small jar file that it can check for jar file needed to be put in the classpath. A small application just with a File Choose to choose the jar file
Any suggestion!no point. manipulating the classpath should be something all developers can do. a deployed application isn't going to be able to ask users to locate jars in that way, or at least I hope the developer that does it gets fired. learn to use the classpath on your development machine, and deployment becomes cleaner. you wouldn't believe some of the "deployments" that appear, only able to run on the developers machine or something, because they relied on local classpath hacks
-
First PKGBUILD (anki-git), review welcome
According to a discussion at https://anki.tenderapp.com/discussions/ … arch-linux , a bug in Qt appears to have broken some functionality in Anki. There is a workaround in the git repo, but until the next stable version is released, the sidebar in the deck browser will not work.
Because I use Anki heavily, and because I also like my Arch install up-to-date, I endeavored to write my first PKGBUILD. It is basically a combination of the current one for anki and an ankiqt-git package from last year, before Anki had a major overhaul.
Since this is my first PKGBUILD, I would very much welcome some opinions before submitting it to the AUR. The install file is simply the same as the one for anki, but I have nonetheless included it for completeness.
PKGBUILD: http://pastebin.com/4x16AN3B (updated 19:14 GMT)
install file: http://pastebin.com/NEZsA4KB
Last edited by tobi-fankhaenel (2013-04-02 19:15:23)Comments and alterations, untested, just a quick reply.
pkgname=anki-git
pkgver=20130402
pkgver() { # Include a pkgver() function to provide more useful information
cd "$pkgname"
git describe | sed 's/-/./g' # Alter where appropriate
} # pkgver= above will be automatically updated based on the result of this function
pkgrel=1
pkgdesc="Helps you remember facts efficiently. Git Version."
url="https://github.com/dae/anki"
license=('GPL')
arch=('any')
depends=('python2-pyqt' 'python2-sqlalchemy' 'python2-simplejson'
'python2-pysqlite' 'python2-beautifulsoup3')
makedepends=('git')
optdepends=('python2-matplotlib: show graphs'
'sox: audio recording'
'portaudio') # Why is the an optdep? "portaudio: <reason>" (even if it's obvious)
provides=('anki')
conflicts=('anki' 'ankiqt-git')
install=anki-git.install
# pacman 4.1
source=("$pkgname"::git+git://github.com/dae/anki.git) # I like using $pkgname:: for consistency across PKGBUILDs
md5sums=('SKIP')
build() {
cd "$srcdir/$pkgname"
sed -i 's|pyuic4 $i -o $py|python2-pyuic4 $i -o $py|' tools/build_ui.sh
./tools/build_ui.sh
sed -i 's|#!/usr/bin/env python|#!/usr/bin/env python2|' runanki
rm -f anki.bat
package() {
cd "$srcdir/$pkgname"
# All of this is horrible practice
# Instead of using cp or mv, use `install' with the appropriate permissions E.g. `install -Dm644 target "$pkgdir"/.../target'
# if you have to use `cp' use `cp -dp --no-preserve=ownership --target-directory="$pkgdir"/...
Last edited by Earnestly (2013-04-20 11:46:40) -
Hello All,
I am seeking opinions about a survey methodology that was told to me today. I have my own thoughts about it but I just want to make sure I'm not off base so any help is greatly appreciated. The requirements for the wireless network are as follows:
- Data and Voice
- Clients will utilize all bands but newer devices will be pushed to 5GHz
- Clients are laptops and iPads right now but the future goal is to implement BYOD
So, here is the methodology that was told to me ... "We survey only in the 5GHz spectrum because if you have coverage in that spectrum (5GHz) the coverage in the 2.4GHz will be the fine or even better than that. Therefore, we feel comfortable not capturing the data in the 2.4GHz spectrum."
Thoughts about the above statement are welcome!!!
Thanks,
MalwanThe essential question for a high-density design is how many channels for each band will be needed to match the client base? This can be a tricky question since even dual band capable clients do not always select the faster 5 GHz band. Since bandwidth in 2.4 GHz is going to be limited, 5 GHz must be relied on to reach the goal.
Dual band adapters have been shipping with most laptops for some time. This does not mean that every laptop is a dual band client, but many are. Simply having a dual band client does not guarantee that it will choose 5 GHz over 2.4 GHz. The Microsoft Windows operating system defaults to a Wi-Fi channel search that starts with the 5 GHz channel 36 and continues searching through all of the 5 GHz channels that the client is capable of. If no 5 GHz AP is found then it will continue the search in 2.4 GHz starting at channel 1. Unless the Windows default is changed or the user has chosen a third party Wi-Fi utility to set spectrum preference to 2.4 GHz, the client radio will first try to associate to a 5 GHz AP. Apple Computer's latest release for Atheros and Broadcom chipsets also searches 5 GHz first.
The Cisco BandSelect feature enables the infrastructure to optimize these types of client connection choices. Where possible, it helps make sure that devices are attaching to the 5 GHz spectrum channels where interference sources tend to be significantly lighter. A much greater channel selection leads to the alleviation of bandwidth challenges.
Tablet computers and smartphones have begun entering the market at a staggering rate. The vast majority of smartphones shipping today operate in 2.4 GHz only. While many of them are 802.11n clients, of these most have implemented a single input single output (SISO) rather than Multiple Input, Multiple Output (MIMO). A SISO device is only capable of supporting MCS7 data rates, or 54 Mbps. -
My first PKGBUILD - stock ticker style output on the console
I created my first PKGBUILD of a simple program I wrote called "ticker" which just converts input text to scrolling stock ticker style output on the console.
The PKGBUILD and a screenshot are at http://www.fial.com/~scott/ticker
I'd like to submit it to the AUR, but I'd really appreciate any comments/advice first.
Scott
Last edited by scottfial (2010-07-04 00:38:38)Writing what it's about in your post (title) would help building interest, I suppose.
-
R3load EXPORT tips for 1,5 TB MAXDB Database are welcome!
Hello to ALL;
this post is addressed to ALL MAXDB-GURU's !!
I'v few questions to MAXDB Performance-Guy's for R3load Export on MAXDB!
(remark to my person:
I'm certified OS/DB migration consultant and have already done over 500 OS/DB migrations since 1995 successfully)
BUT now I'm face with following setup for Export:
HP- IA64 BL870c, 4 CPUu2019s Dual-Core + Hyperthreading activ (mean's 16 "CPU'S" shown via top or glance)
64 GB RAM, HPUX V11.31;
MAXDB 7.7.07
ECC 5.0; Basis/Aba 640.22
SAP-Kernel 640-Unicode Patch 381
8 sapdatas are configured on unique 200GB LUN's and VG's in HP-UX; on storage-side the 8 220GB LUN's are located on (only) 9 300GB-Disks with Raid-5 Level and within HP-UX each VG/LVOL is mirrored via LVM to a second desasterdatacenter (200m distance)
LOGFILES:
2 x 4 GB LUN Raid-1 on Storage and via LVM also mirrored to failover-center
MAXDB-Datasize: 1600 GB Overall and within this 1350 GB used, TEMPUsage about 25 GB !
MAXDB-Parameter-Settings
MAXCPUu2019s 10 (4 x IA64 QuadCore+Hyperthreading shows 16 Cores within top and galcne
Cache_SIZE= I/O Buffer Cache = 16 GB (2.000.000 Pages)
Data-Cache-HitRatio: 99.61%
Undo-Cache = 99,98%
the following sapnote for MAXDB Peformance and Migrations are well known and already processes
928037, 1077887, 1385089, 1327874, 954268, 1464560, 869267,
My major problem is the export-runtime with over 4 days on the first dry-run (6 R3load's running on Linux-APPL-Server), and 46h on second runtime, 6 R3loads running on DB-Server IA64)
the third trail-run was aborted by me after 48hours and 50% export-dump-space was written. In all 3 dry-runs, no more than approx 3.5GB DUMP-Space were written per hour!
My first question to all MAXDB-Guru'S: How can I influence/optimize the TEMP - Area in MAXDB?? I didn't find any hint's in SDN or SAPNOTES or MaxDB Wiki or google....As fare as I know, this TEMP area "resides" within MAXDB-datafiles, thus it's seperated on my 48 datafiles, spreaded over 8 LUN/VG/disks. But I see LESS throughput on disk's and MAXDB-Kernel uses only ONE of ten's cpu-cores (approx 80% - 120% of 1000%).
The throughput or cpu-usage doesn't change when I use 2 or 4 or 10 or 16 R3load' processes in parallel. The "result" is always the same: approx. 3,5 GB Export-Dump and 1 CPU MAX-DB Kernelprocess is used !
so the BIG Question for me: WHERE is the bottleneck ?? (RAID-5 Disk-LUNS mirrored with LVM ???)
on HP-UX scsi_queue_depth_length I'v increased default value from 8 to 32 to 64 to 128 --> no impact
2nd question:
I'v read OS-Note 1327874 - FAQ: SAP MaxDB Read Ahead/Prefetch, and we are running MAXDB 7.7.07.19! (MaxDB 7.8 is not suppored via PAM for IA64 640-UC-Kernel) and as far as I understood, this parameter will no HELP me on EXPORT with primary-key-sequence ! is this correct? THUS: which parameter HELPS for speeding up Export-Runtime?
MAXCPU is set to 10, but ONLY 1 of them is used??
so this post is for ALL MAXDB GURU'S!
who will be intrested to contriubte on this "high-sophisticated" migration-project with 1.5TB MAXDB-Database-size and ONLY 24h Downtime !!
all tips and hints are welcome and I will give us coninued updates to this running project until WE did a successfull migration job.
PS: Import is not yet started, but should be done within vSphere 5 and SLES 11 SP1 on MAXDB 7.8 ....and of yours in parallel to export with migration monitor, BUT again a challenge: 200km distance from source to traget system !!!
NICE PROJECT;
best regards AlfredHi Alfred,
nice project ... just some simple questions:
Did you open a message at SAP? Maybe you could buy some upgrade support, this could be usefull to get direct access to the SAP support...
Which byte order do you use? I know Itanium could use both. But it should be different, otherwise you would use a backup for the migration.
And the worst question, I do not even want to ask: What about your MAXCPUS parameter? Is it set to more than 1? This could be the problem why only one CPU is used.
Best regards
Christian -
First pkgbuild, verification please
Hello!
This is my first pkgbuild from scratch.
I had read the standards but I want to be sure it's alright.
Thank.
# Author: Shaika-Dzari <shaikadzari at gmail _dot_ com>
pkgname=animeshell
pkgver=1.0
pkgrel=1
pkgdesc="Collection manager for your animes and mangas"
arch=('i686')
url="http://code.google.com/p/animeshell/"
license=('GPL')
depends=('qt4')
source=(http://animeshell.googlecode.com/files/Animeshell-$pkgver-linux.tar.bz2 Animeshell.desktop)
md5sums=('9cb24c9d68c117c05021d3465494e327'
'4be9aa92283d3751fec654aa5fb2f2fb')
build() {
export QMAKESPEC=linux-g++
cd "$startdir/src/Animeshell-$pkgver-linux"
qmake -config release
make || return 1
# Executable
install -d $startdir/pkg/usr/bin
install -Dm755 bin/Animeshell $startdir/pkg/usr/bin/
# .desktop file
install -d $startdir/pkg/usr/share/applications
install -Dm644 $startdir/src/Animeshell.desktop $startdir/pkg/usr/share/applications/
# Icon
install -d $startdir/pkg/usr/share/pixmaps
install -Dm644 ui/resources/animeshell-icon-10.png $startdir/pkg/usr/share/pixmaps/animeshell.png
[Desktop Entry]
Name=Animeshell
Comment=Collection manager
Exec=Animeshell
Terminal=false
Type=Application
Icon=animeshell.png
Categories=Qt;Application;
Encoding=UTF-8Allan wrote:
Shaika-Dzari wrote:
Allan wrote:Also "install -D" creates the directory structure so you shouldn't need the "install -d" lines beforehand.
Weird, from the man page:
-D create all leading components of DEST except the last, then copy
SOURCE to DEST
no it is not so weird. As there is currently no directory where you want to install the file to (at least that is what it is assuming) it has otherwise no idea if the last component is either a directory or a file.
This means that for example
install -Dm644 sample.desktop $startdir/pkg/usr/share/applications
removes the last component (applications in this example), and installs the sample.desktop file under the name applications in $startdir/pkg/usr/share/
Therefore, the correct way is
install -Dm644 sample.desktop $startdir/pkg/usr/share/applications/sample.desktop
Last edited by pressh (2008-01-18 16:25:35) -
First PKGBUILD, is it alright to submit?
I wrote a python Youtube search client with a curses interface. I wrote a PKGBUILD for it aswell so I can easily share it with my archie friends. However, this is the first PKGBUILD I wrote, so I ask you to please review it for me and let me know if it's good enough to submit to AUR.
# Maintainer: Tyler Cone <[email protected]>
pkgname=yt-git
pkgver=20130125
pkgrel=1
pkgdesc="A curses Youtube search client written in python"
arch=('any')
url="https://github.com/herrflockig/yt"
license=('WTFPL')
depends=('mplayer' 'youtube-dl' 'python2')
makedepends=('git')
conflicts=('yt')
provides=('yt')
_gitname="yt"
_gitroot="https://github.com/herrflockig/yt"
pkgver() {
cd "$srcdir/$_gitname"
echo $(git describe --always | sed 's/-/./g')
build() {
cd $srcdir
msg "Connecting to GIT server..."
if [ -d $_gitname ]; then
cd $_gitname && git pull origin
msg "The local files are updated."
else
git clone --depth=1 $_gitroot $_gitname
fi
msg "GIT checkout done or server timeout"
package() {
cd "$srcdir/$_gitname"
mkdir -p $pkgdir/usr/bin
cp yt.py $pkgdir/usr/bin/yt
chmod +x $pkgdir/usr/bin/yt
And while you're at it, why not give the script a try and let me know what you think?herrflockig wrote: mkdir -p $pkgdir/usr/bin
cp yt.py $pkgdir/usr/bin/yt
chmod +x $pkgdir/usr/bin/yt
This can be condensed to 1 command:
install -Dm755 yt.py "$pkgdir/usr/bin/yt"
Also WTFPL should be "custom" or "custom:WTFPL" since it's not an officially recognized common license in arch.
herrflockig wrote:And while you're at it, why not give the script a try and let me know what you think?
I'm liking this a lot..
Is it expected that I can't resize/fullscreen the videos? The video just stays in the center at the same size with surrounding black space.
(Maybe you can start a Community Contributions thread for this.)
Last edited by tdy (2013-01-26 04:45:12) -
First PKGBUILD (gsplit) - can you check ??
Hello
I wrote my first PKGBUILD, for the gsplit program. But before uploading it to AUR I wonder if someone experienced could check it ?
Thank you in advance
(PS : sorry for my bad english)
# $Id: PKGBUILD, 2009/02/22$
# Maintainer: IDontWantToBeSpamed <IDontWantToBeSpamed>
# Contributor: IDontWantToBeSpamed <IDontWantToBeSpamed>
pkgname=gsplit-svn
pkgver=20090222
pkgrel=1
pkgdesc="frontend for split, written in java"
arch=(i686 x86_64)
url="http://www.respawner.fr/gsplit/"
license=('GPL3')
groups=
provides=('gsplit')
depends=('java-runtime' 'java-gnome')
makedepends=('subversion' 'apache-ant')
source=()
md5sums=()
build() {
name=gsplit
cd $startdir/src
svn co http://www.respawner.fr/$pkgname/trunk/$name/
cd $name
mkdir libs
CLASSPATH=/usr/local/share/java/gtk.jar ant dist
cd build
mkdir -p $startdir/pkg/usr/share/$name
mkdir -p $startdir/pkg/usr/share/java/$name
mkdir -p $startdir/pkg/usr/bin
mv data $startdir/pkg/usr/share/$name
mv po $startdir/pkg/usr/share/$name
mv gsplit.jar $startdir/pkg/usr/share/java/$name
echo '#! /bin/sh' > $startdir/pkg/usr/bin/$name
echo 'java -classpath /usr/local/share/java/gtk.jar:/usr/share/java/gsplit/gsplit.jar gsplit.GSplit' >> $startdir/pkg/usr/bin/$name
chmod +x $startdir/pkg/usr/bin/$nameOK Thanks ... I will modify the PKGBUILD.
new version :
# $Id: PKGBUILD, 2009/02/22$
# Maintainer: ***** <***>
# Contributor: ***** <***>
pkgname=gsplit-svn
pkgver=148
pkgrel=1
pkgdesc="frontend for split, written in java"
arch=(i686 x86_64)
url="http://www.respawner.fr/gsplit/"
license=('GPL3')
groups=
provides=('gsplit')
depends=('java-runtime' 'java-gnome')
makedepends=('subversion' 'apache-ant')
source=(gsplit.desktop)
md5sums=('430bf9e6c3eb824edbaa886e4ce1c482')
_svntrunk="http://www.respawner.fr/$pkgname/trunk/gsplit"
_svnmod="gsplit"
build() {
name=gsplit
mkdir -p $startdir/pkg/usr/share/$name
mkdir -p $startdir/pkg/usr/share/java/$name
mkdir -p $startdir/pkg/usr/bin
mkdir -p $startdir/pkg/usr/share/icons
mkdir -p $startdir/pkg/usr/share/applications
cd $startdir/src
mv $name.desktop $startdir/pkg/usr/share/applications
svn co $_svntrunk $_svnmod
cd $name
mkdir libs
CLASSPATH=/usr/local/share/java/gtk.jar ant dist
cd build
cp data/logo.png $startdir/pkg/usr/share/icons/gsplit.png
mv data $startdir/pkg/usr/share/$name
mv po $startdir/pkg/usr/share/$name
mv gsplit.jar $startdir/pkg/usr/share/java/$name
echo '#! /bin/sh' > $startdir/pkg/usr/bin/$name
echo 'java -classpath /usr/local/share/java/gtk.jar:/usr/share/java/gsplit/gsplit.jar gsplit.GSplit' >> $startdir/pkg/usr/bin/$name
chmod +x $startdir/pkg/usr/bin/$name
desktop :
[Desktop Entry]
Encoding=UTF-8
Name=gsplit
Comment=frontend for split
GenericName=
Type=Application
TryExec=gsplit
Exec=gsplit
Icon=gsplit.png
Terminal=false
X-MultipleArgs=false
Categories=GTK;Application;Utility;
Last edited by akira86 (2009-02-22 23:15:54) -
First PKGBUILD: blobby2-svn
Hi,
this is my first PKGBUILD for the svn-version of Blobby Volley 2. Please test it before I'll put it into AUR:
pkgname=blobby2-svn
pkgver=375
pkgrel=1
pkgdesc="Blobby Volley 2 - SVN version"
url="http://blobby.redio.de/content/de/index.php"
license=""
depends=()
conflicts=('blobby2')
makedepends=('subversion' 'pkgconfig')
source=()
md5sums=()
_svntrunk="https://blobby.svn.sourceforge.net/svnroot/blobby"
_svnmod="blobby"
build()
touch ~/.subversion
cd $startdir/src
# Get the source
svn co $_svntrunk $_svnmod
msg "SVN checkout done or server timeout"
msg "Starting make..."
cd $_svnmod/trunk
sed -i 's/automake-1.9/automake-1.10/' bootstrap
sh bootstrap --prefix=/usr
./configure --prefix=/usr
make || return 1
make DESTDIR=$startdir/pkg install
Thanks!
Greets, Mo.The PKGBUILD is quite clean and good. Here are a few nit-picky stylistic points:
- Remove the unused (empty) variables.
- Remove the period at the end of the description.
- Don't bother including the md5sums array (just the shaXsums). MD5's collision resistance has been broken.
- Use $() instead of backticks (``). Actually, just avoid backticks in general.
- Instead of `mkdir -p $_bindir`, use `install -dm755 $_bindir`. That way the permissions are guaranteed to be correct no matter what the user's umask is. -
Made my first PKGBUILD... :)
Hi Forum,
I have made my first PKGBUILD, it is a hack of the PKGBUILD of BRLCAD, which I have used to pack Ofeli, http://www.ofeli.net/, to /usr{bin lib share doc} as required by Archer Philosophy.
Here it is :
# Maintainer: Loui Chang <louipc dot ist at gmail company>
pkgname=ofeli
pkgver=2.0.2
pkgrel=1
pkgdesc="Finite elements analysis Package"
url="http://brlcad.org"
license=('LGPL' 'BSD' 'custom:BDL')
#install=brlcad.install
arch=('i686' 'x86_64')
#makedepends=('bc' 'libxslt')
#depends=('boost' 'flex' 'libpng' 'zlib' 'libgl' 'tk>=8.5')
#options=('!libtool')
source=(ofeli-2.0.2.tar.gz)
build() {
cd $srcdir/$pkgname-$pkgver
./configure --prefix=/usr
# --with-opengl=/usr/lib \
# --with-tcl=/usr/lib \
# --disable-step \
# --disable-tkhtml3 \
# --disable-tkimg \
# --disable-opennurbs
# For opennurbs, etc
# gcc -I/opt/brlcad/include -L/opt/brlcad/lib
make || return 1
package() {
cd $srcdir/$pkgname-$pkgver
make DESTDIR=$pkgdir install || return 1
# install -D -m755 $srcdir/brlcad.sh $pkgdir/etc/profile.d/brlcad.sh
# mkdir -p $pkgdir/usr/share/licenses/$pkgname
# cp $srcdir/$pkgname-$pkgver/doc/legal/bdl.txt \
# $pkgdir/usr/share/licenses/$pkgname
# cp $srcdir/$pkgname-$pkgver/doc/legal/bsd.txt \
# $pkgdir/usr/share/licenses/$pkgname
#md5sums=('8ccbc692d84854c9b0599b6d1255f916'
# '4922e66ff0835169374b9c0569c2f569')
As you all can see, I hacked parts of this script so as to run a simple ./configure make make install in $PKG/usr fakeroor, and pack it into an Arch package.
I have lots of questions, one at a time...
1.) How do I know that something wont be over written as soon as I run pacman -U my-pkg.tar.xz ?
2.) Since Directory structure of Ofeli respects Linux file structure, I decided to drop it in /usr... If it did not, I would probably ship it to /opt, but why /usr instead of /usr/local....?
3.) I tried to make a similar hack with mbdyn, http://www.aero.polimi.it/mbdyn/, but I failed. Standard autoconf install of mbdyn complies with ./configure make make install scheme, and it creates /usr/local/{bin lib libexec share }
When I ran this PKGBUILD
# Maintainer: Loui Chang <louipc dot ist at gmail company>
pkgname=mbdyn
pkgver=1.3.15
pkgrel=1
pkgdesc="A MultiBody Dynamics analysis package"
url="http://brlcad.org"
license=('LGPL' 'BSD' 'custom:BDL')
#install=brlcad.install
arch=('i686' 'x86_64')
#makedepends=('bc' 'libxslt')
#depends=('boost' 'flex' 'libpng' 'zlib' 'libgl' 'tk>=8.5')
#options=('!libtool')
source=(mbdyn-1.3.15.tar.gz)
build() {
cd $srcdir/$pkgname-$pkgver
./configure --prefix=/usr
# --with-opengl=/usr/lib \
# --with-tcl=/usr/lib \
# --disable-step \
# --disable-tkhtml3 \
# --disable-tkimg \
# --disable-opennurbs
# For opennurbs, etc
# gcc -I/opt/brlcad/include -L/opt/brlcad/lib
make || return 1
package() {
cd $srcdir/$pkgname-$pkgver
make DESTDIR=$pkgdir install || return 1
# install -D -m755 $srcdir/brlcad.sh $pkgdir/etc/profile.d/brlcad.sh
# mkdir -p $pkgdir/usr/share/licenses/$pkgname
# cp $srcdir/$pkgname-$pkgver/doc/legal/bdl.txt \
# $pkgdir/usr/share/licenses/$pkgname
# cp $srcdir/$pkgname-$pkgver/doc/legal/bsd.txt \
# $pkgdir/usr/share/licenses/$pkgname
#md5sums=('8ccbc692d84854c9b0599b6d1255f916'
# '4922e66ff0835169374b9c0569c2f569')
( Similar hack of BRLCAD PKGBUILD ) it failed when trying to create libexec... how can I change this....?
4.) suppose I want to untar a package.zip in /opt/package, and make a script in /usr/bin/ called "package" containing 'cd /opt/package&&./initscript.sh' properly chmoded as executable, How do I build a PKGBUILD to build a package which once installed will perform this...?
Most of these questions can seem n00bish, but i am not a great Archer yet... just a little Archer trying to learn something....1) pacman will yell at you if there are file conflicts. Generally, if you're packaging something that already exists, you should tack on a suffix (e.g. -git or -nox) to describe the difference. The "official" package then makes it into the conflicts array of your modified package.
2) /usr/local is generally reserved for things that won't fall under the domain of the package manager. See the FHS for more details.
3) libexec is avoided in Arch because it does not adhere to the FHS (see above link). The files that go to /usr/libexec should probably end up in /usr/lib instead. Look at the help provided by the config script (./configure --help).
4) You don't need an install scriptlet to chmod files. Set the permission bits in the package() function after they're moved into place. -
Celtx - Need guidance with first PKGBUILD
Ok, I decided to make my first PKGBUILD, and chose Celtx (http://celtx.com/) since it seems like a very useful tool, and not too complicated.
I already installed it manually and it works fine. However, although they state it's open source, the sources aren't available on their website...only language-specific compiled packages. Can I make a package for the AUR without sources?
Anyway, these are the installation steps I had in mind: extract tar.gz to the /opt directory --> create a symlink for /opt/celtx/celtx in /usr/bin --> copy the license to its appropriate folder (/usr/share/licenses/celtx).
I think that's it. Am I missing something or trying to do something I shouldn't? It seems simple enough and I'm working on the PKGBUILD, but I would still like to know if I should even finish it based on my first question concerning the lack or sources.Oh well, I finished before getting a response. Doesn't matter...I'm just glad I did something, regardless of how inconsequential.
If anyone wants to take a look at it below, and point out any mistakes, I would be grateful. By the way, it does work. I built the package and installed it with pacman, and everything is where it should be, and it runs. 8)
pkgname=celtx
pkgver=0.9.8
pkgrel=1
pkgdesc="Pre-production software for film, video, theatre, and animation"
url="http://celtx.com/"
license="custom:CePL"
arch=(i686)
source=(http://www.celtx.com/download/Celtx.tar.gz)
md5sums=('f59759e16b3d64e3592aaf37641ee5b8')
build() {
mkdir -p $startdir/pkg/opt/
cp -R $startdir/src/$pkgname $startdir/pkg/opt/$pkgname/
mkdir -p $startdir/pkg/usr/bin/
ln -sf $startdir/pkg/opt/$pkgname/$pkgname $startdir/pkg/usr/bin/$pkgname
mkdir -p $startdir/pkg/usr/share/licenses/custom/$pkgname
cp $startdir/license.txt $startdir/pkg/usr/share/licenses/custom/$pkgname/ -
My first PKGBUILD - Accentuate 1.0
Hi everyone, I started to practice some ABS, and i created a simple PKGBUILD to install accentuate (it's a fork of KeyJnote, now unreachable for legal issues), a software to present pdf or png slideshows with interesting (and sometimes hidden) features.
Because it is the first PKGBUILD I'm going to release in the AUR, It would be great if someone gave me a little review of what I've done.
Here it is:
# Contributor: Asa Marco <marcoasa90 <at> gmail.com>
pkgname="accentuate-git"
pkgver=20081023
pkgrel=1
license="GPL"
arch=('i686' 'x86_64')
pkgdesc="Presentation tool based on KeyJNote, with many eyecandy effects"
depends=('python' 'python-opengl' 'python-pygame' 'pil' 'poppler')
makedepends=('git')
optdepends=('mplayer: needed to play audio and videos')
source=()
url="http://www.cs.rit.edu/~jrm8005/accentuate.html"
md5sums=()
_gitroot="git://repo.or.cz/accentuate.git"
_gitname="accentuate"
build() {
git clone $_gitroot
cd $startdir/src/$_gitname
install -D -m755 accentuate ${startdir}/pkg/usr/bin/accentuate
Another way to make it works, could look like this:
source=('http://repo.or.cz/w/accentuate.git?a=snapshot;h=heads/master;sf=tgz')
url="http://www.cs.rit.edu/~jrm8005/accentuate.html"
md5sums=()
_gitname="accentuate"
build() {
cd $startdir/src/$_gitname
install -D -m755 accentuate ${startdir}/pkg/usr/bin/accentuate
Considering that the second option doesn't need any makedepends, what's the best approach?
Any suggestion is wellcome!I like the first way best and having git as an extra dependency isn't really an issue.
Now, the PKGBUILD looks great (considering it's your first), although there is room for improvement. For starters, you can base your package on /usr/share/pacman/PKGBUILD-git.proto (here's a newer version), which is a nice template for git packages. Doing so will help create a more sophisticated package whilst preventing order inconsistencies. Another thing you might want to do is to remove empty fields from the PKGBUILD (i.e.: source, md5sums, etc), purely for aesthetic reasons. Lastly and more importantly, the license field must be an array instead of a string.
All three of the above are minor issues and shouldn't put you off.
Edit: You may as well leave python out of the dependencies list, as it's implicitly required by the rest of the python packages.
Last edited by foutrelis (2008-10-24 01:53:06) -
My first PKGBUILD (MultiGPG)
Hello everyone,
I wrote a little script and now I would like to submit it to the AUR. Since this is my first PKGBUILD I am posting here to ask if I did anything wrong.
You can check it out here:MultiGPG. The PKGBUILD is in the AUR directory.
Any comments?
Greetings,
FaerbitFaerbit wrote:
Hello everyone,
I wrote a little script and now I would like to submit it to the AUR. Since this is my first PKGBUILD I am posting here to ask if I did anything wrong.
You can check it out here:MultiGPG. The PKGBUILD is in the AUR directory.
Any comments?
Greetings,
Faerbit
EDIT: make sure to install the binary as executable, that is
install -Dm755 $pkgname "$pkgdir"/usr/bin
Last edited by lspci (2014-01-10 23:49:30)
Maybe you are looking for
-
Var Request Works Locally but not when Placed Online
When I run this code on machine locally, it works perfect, however when I put it online it no longer works, can anybody help? Additionally the only the reason i placed the var request in a function was because I have another var request earlier in th
-
I'm, running WinXP Sp3. I downloaded 10.0.2 and installed it as an upgrade as I have done successfully with all other new versions. It installs, but when it tries to load I get the following error: Platform version '9.0.1' is not compatible with minV
-
Purpose of transaction code MB52
what is the purpose of Transaction code MB52
-
Ever since I have had my Rhyme, the skin on people is tinted red in the photo I've taken. I've tried adjusting the settings, but I can't seem to make it go away. It's very frustrating. Am I the only one having this problem?
-
Which FCP effects are used by pros for talking head corporate videos?
I'm trying to create a 'corporate' talking head web video look. Which FCP effects are most useful for this? On the one hand, I don't want to do effects just for the sake of doing effects, and distract from the message. On the other hand, if it doesn'