diff --git a/.bzrignore b/.bzrignore new file mode 100644 index 0000000..3589eae --- /dev/null +++ b/.bzrignore @@ -0,0 +1,23 @@ +./aclocal.m4 +./autom4te.cache +./compile +./config.guess +./config.sub +./configure +./depcomp +./install-sh +./ltmain.sh +./missing +./Makefile.in +./config.log +./config.status +./libtool +Makefile +./libisofs-5.pc +./version.h +.deps +.dirstamp +.libs +test/iso +*.lo +*.la diff --git a/.cdtproject b/.cdtproject index 6a9b5b6..534a026 100644 --- a/.cdtproject +++ b/.cdtproject @@ -51,6 +51,7 @@ + diff --git a/.project b/.project index fa0dbb0..8ebe17c 100644 --- a/.project +++ b/.project @@ -7,7 +7,6 @@ org.eclipse.cdt.make.core.makeBuilder - clean,full,incremental, org.eclipse.cdt.make.core.enableCleanBuild @@ -37,16 +36,16 @@ org.eclipse.cdt.make.core.build.arguments - - org.eclipse.cdt.make.core.useDefaultBuildCmd - true - org.eclipse.cdt.make.core.environment - org.eclipse.cdt.make.core.enableFullBuild + org.eclipse.cdt.make.core.useDefaultBuildCmd + true + + + org.eclipse.cdt.make.core.enableAutoBuild true @@ -54,13 +53,17 @@ all - org.eclipse.cdt.make.core.enableAutoBuild - false + org.eclipse.cdt.make.core.enableFullBuild + true org.eclipse.cdt.make.core.build.target.clean clean + + org.eclipse.cdt.make.core.build.location + + org.eclipse.cdt.core.errorOutputParser org.eclipse.cdt.core.MakeErrorParser;org.eclipse.cdt.core.GCCErrorParser;org.eclipse.cdt.core.GASErrorParser;org.eclipse.cdt.core.GLDErrorParser;org.eclipse.cdt.core.VCErrorParser; diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..99edae9 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,64 @@ +pkgconfigdir=$(libdir)/pkgconfig +libincludedir=$(includedir)/libisofs + +lib_LTLIBRARIES = src/libisofs.la + +## ========================================================================= ## + +# Build libraries + +src_libisofs_la_LDFLAGS = \ + -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) +src_libisofs_la_SOURCES = \ + src/tree.h \ + src/tree.c \ + src/image.h +libinclude_HEADERS = \ + src/libisofs.h + +## ========================================================================= ## + +## Build test applications +noinst_PROGRAMS = \ + test/iso + +test_iso_CPPFLAGS = -Isrc +test_iso_LDADD = $(src_libisofs_la_OBJECTS) $(THREAD_LIBS) +test_iso_SOURCES = test/iso.c + + +## Build unit test + +#check_PROGRAMS = \ +# test/test + +#test_test_CPPFLAGS = -Ilibisofs +#test_test_LDADD = $(libisofs_libisofs_la_OBJECTS) $(THREAD_LIBS) -lcunit +#test_test_LDFLAGS = -L.. -lm + +#test_test_SOURCES = \ +# test/test_exclude.c + +## ========================================================================= ## + +## Build documentation (You need Doxygen for this to work) +## TODO!! + +## ========================================================================= ## + +# Extra things +nodist_pkgconfig_DATA = \ + libisofs-5.pc + +EXTRA_DIST = \ + libisofs-5.pc.in \ + version.h.in \ + README \ + AUTHORS \ + COPYRIGHT \ + COPYING \ + NEWS \ + INSTALL \ + TODO \ + ChangeLog + diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..7001d0f --- /dev/null +++ b/NEWS @@ -0,0 +1 @@ +nothing here now diff --git a/README b/README new file mode 100644 index 0000000..704fe87 --- /dev/null +++ b/README @@ -0,0 +1,256 @@ +------------------------------------------------------------------------------ + libburnia-project.org +------------------------------------------------------------------------------ +This all is under GPL. +(See GPL reference, our clarification and commitment at the end of this text) +------------------------------------------------------------------------------ +libburnia-project.org +By Mario Danic and Thomas Schmitt +Copyright (C) 2006-2007 Mario Danic, Thomas Schmitt + +Still containing parts of +Libburn. By Derek Foreman and + Ben Jansens +Copyright (C) 2002-2006 Derek Foreman and Ben Jansens +These parts are to be replaced by own code of above libburnia-project.org +copyright holders and then libburnia-project.org is to be their sole copyright. +This is done to achieve the right to issue the clarification and the +commitment as written at the end of this text. +The rights and merits of the Libburn-copyright holders Derek Foreman and +Ben Jansens will be duely respected. + +This libburnia-project.org toplevel README (C) 2006-2007 Thomas Schmitt +------------------------------------------------------------------------------ + + Build and Installation + +Our build system is based on autotools. For preparing the build of a SVN +snapshot you will need autotools of at least version 1.7. +Check out from SVN by + svn co http://svn.libburnia-project.org/libburn/trunk libburn +go into directory libburn and apply autotools by + ./bootstrap + +Alternatively you may unpack a release tarball for which you do not need +autotools installed. + +To build a libburnia-project.org subproject it should be sufficient to go +into its toplevel directory (here: "libburn") and execute + ./configure --prefix=/usr + make + +To make the libraries accessible for running resp. developing applications + make install + + +The other half of the project, libisofs, is hosted in the libburnia SVN, too: + svn co http://svn.libburnia-project.org/libisofs/trunk libisofs +See README file there. + + +------------------------------------------------------------------------------ + + + Overview of libburnia-project.org + +libburnia-project.org is an open-source software project for reading, mastering +and writing optical discs. +For now this means only CD media and all single layer DVD media except DVD+R. + +The project comprises of several more or less interdependent parts which +together strive to be a usable foundation for application development. +These are libraries, language bindings, and middleware binaries which emulate +classical (and valuable) Linux tools. + +Our scope is currently Linux 2.4 and 2.6 only. For ports to other systems +we would need : login on a development machine resp. a live OS on CD or DVD, +advise from a system person about the equivalent of Linux sg or FreeBSD CAM, +volunteers for testing of realistic use cases. + +We have a workable code base for burning CD and most single layer DVD. +The burn API is quite comprehensively documented and can be used to build a +presentable application. +We have a functional binary which emulates parts of cdrecord in order to +prove that usability, and in order to allow you to explore libburnia's scope +by help of existing cdrecord frontends. + +The project components (list subject to growth, hopefully): + +- libburn is the library by which preformatted data get onto optical media. + It uses either /dev/sgN (e.g. on kernel 2.4 with ide-scsi) or + /dev/hdX (e.g. on kernel 2.6). + libburn is the foundation of our cdrecord emulation. Its code is + independent of cdrecord. Its DVD capabilities are learned from + studying the code of dvd+rw-tools and MMC-5 specs. No code but only + the pure SCSI knowledge has been taken from dvd+rw-tools, though. + +- libisofs is the library to pack up hard disk files and directories into a + ISO 9660 disk image. This may then be brought to media via libburn. + libisofs is to be the foundation of our upcoming mkisofs emulation. + +- cdrskin is a limited cdrecord compatibility wrapper for libburn. + Cdrecord is a powerful GPL'ed burn program included in Joerg + Schilling's cdrtools. cdrskin strives to be a second source for + the services traditionally provided by cdrecord. Additionally it + provides libburn's DVD capabilities, where only -sao is compatible + with cdrecord. + cdrskin does not contain any bytes copied from cdrecord's sources. + Many bytes have been copied from the message output of cdrecord + runs, though. + See cdrskin/README and man cdrskin/cdrskin.1 for more. + +- test is a collection of application gestures and examples given by the + authors of the library features. The main API example for libburn + is test/libburner.c . + Explore these examples if you look for inspiration. + +We plan to be a responsive upstream. Bear with us. We are still practicing. + + +------------------------------------------------------------------------------ +Project history as far as known to me: + +- Founded in 2002 as it seems. See mailing list archives + http://lists.freedesktop.org/archives/libburn/ + The site of this founder team is reachable and offers download of a + (somewhat outdated) tarball and from CVS : + http://icculus.org/burn/ + Copyright holders and most probably founders: + Derek Foreman and Ben Jansens. + +- I came to using libburn in 2005. Founded the cdrskin project and submitted + necessary patches which were accepted or implemented better. Except one + remaining patch which prevented cdrskin from using vanilla libburn from CVS. + The cdrskin project site is reachable and offers download of the heavily + patched (elsewise outdated) tarball under the name cdrskin-0.1.2 : + http://scdbackup.sourceforge.net/cdrskin_eng.html + It has meanwhile moved to use vanilla libburn.pykix.org , though. + Version 0.1.4 constitutes the first release of this kind. + +- In July 2006 our team mate Mario Danic announced a revival of libburn + which by about nearly everybody else was perceived as unfriendly fork. + Derek Foreman four days later posted a message which expressed his + discontent. + The situation first caused me to publically regret it and then - after i + got the opportunity to move in with cdrskin - gave me true reason to + personally apologize to Derek Foreman, Ben Jansens and the contibutors at + icculus.org/burn. Posted to both projects: + http://lists.freedesktop.org/archives/libburn/2006-August/000446.html + http://mailman-mail1.webfaction.com/pipermail/libburn-hackers/2006-August/000024.html + +- Mid August 2006 project cdrskin established a branch office in + libburn.pykix.org so that all maintainers of our tools have one single place + to get the current (at least slightely) usable coordinated versions of + everything. + Project cdrskin will live forth independendly for a while but it is committed + to stay in sync with libburn.pykix.org (or some successor, if ever). + cdrskin is also committed to support icculus.org/burn if the pending fork + is made reality by content changes in that project. It will cease to maintain + a patched version of icculus.org/burn though. Precondition for a new + release of cdrskin on base of icculus.org/burn would be the pending + "whitelist patch" therefore. + I would rather prefer if both projects find consense and merge, or at least + cooperate. I have not given up hope totally, yet. + I, personally, will honor any approach. + +- 2nd September 2006 the decision is made to strive for a consolidation of + copyright and a commitment to GPL in a reasonable and open minded way. + This is to avoid long term problems with code of unknown origin and + with finding consense among the not so clearly defined group of copyright + claimers and -holders. + libisofs is already claimed sole copyright Mario Danic. + cdrskin and libburner are already claimed sole copyright Thomas Schmitt. + Rewrites of other components will follow and concluded by claiming full + copyright within the group of libburn.pykix.org-copyright holders. + +- 16th September 2006 feature freeze for release of libburn-0.2.2 . + +- 20th September 2006 release of libburn-0.2.2 . + +- 26th October 2006 feature freeze for cdrskin-0.2.4 based on libburn-0.2.3 . + This version of cdrskin is much more cdrecord compatible in repect + to drive addressing and audio features. + +- 30th October 2006 release of cdrskin-0.2.4 . + +- 13th November 2006 splitting releases of libburn+cdrskin from libisofs. + +- 24th November 2006 release of libburn-0.2.6 and cdrskin-0.2.6 . cdrskin has + become suitable for unaware frontends as long as they perform only the core + of cdrecord use cases (including open-ended input streams, audio, and + multi-session). + +- 28th November 2006 the umbrella project which encloses both, libisofs and + libburn, is now called libburnia. For the origin of this name, see + http://en.wikipedia.org/wiki/Liburnians . + +- 16th January 2007 release of libburn-0.3.0 and cdrskin-0.3.0 . Now the scope + is widened to a first class of DVD media: overwriteable single layer types + DVD-RAM, DVD+RW, DVD-RW. This is not a cdrecord emulation but rather inspired + by dvd+rw-tools' "poor man" writing facility for this class of media. + Taking a bow towards Andy Polyakov. + +- 11th February 2007 version 0.3.2 covers sequential DVD-RW and DVD-R with + multi-session and with DAO. + +- 12th March 2007 version 0.3.4 supports DVD+R and thus covers all single layer + DVD media. Code for double layer DVD+/-R is implemented but awaits a tester + yet. + +- 23th April 2007 version 0.3.6 follows the unanimous opinion of Linux kernel + people that one should not use /dev/sg on kernel 2.6. + +- 31st July 2007 version 0.3.8 marks the first anniversary of libburn revival. + We look back on improved stability, a substantially extended list of media + and write modes, and better protection against typical user mishaps. + + +------------------------------------------------------------------------------ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation. To be exact: version 2 of that License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +------------------------------------------------------------------------------ +Clarification in my name and in the name of Mario Danic, upcoming copyright +holders on toplevel of libburnia. To be fully in effect after the remaining +other copyrighted code has been replaced by ours and by copyright-free +contributions of our friends: +------------------------------------------------------------------------------ + +We, the copyright holders, agree on the interpretation that +dynamical linking of our libraries constitutes "use of" and +not "derivation from" our work in the sense of GPL, provided +those libraries are compiled from our unaltered code. + +Thus you may link our libraries dynamically with applications +which are not under GPL. You may distribute our libraries and +application tools in binary form, if you fulfill the usual +condition of GPL to offer a copy of the source code -altered +or unaltered- under GPL. + +We ask you politely to use our work in open source spirit +and with the due reference to the entire open source community. + +If there should really arise the case where above clarification +does not suffice to fulfill a clear and neat request in open source +spirit that would otherwise be declined for mere formal reasons, +only in that case we will duely consider to issue a special license +covering only that special case. +It is the open source idea of responsible freedom which will be +decisive and you will have to prove that you exhausted all own +means to qualify for GPL. + +For now we are firmly committed to maintain one single license: GPL. + +signed: Mario Danic, Thomas Schmitt + diff --git a/TODO b/TODO index 9f21820..1a1259e 100644 --- a/TODO +++ b/TODO @@ -5,6 +5,7 @@ FEATURES TODO ==== +#00001 (tree.h) -> consider adding new timestamps to IsoTreeNode FIXME ===== diff --git a/acinclude.m4 b/acinclude.m4 new file mode 100644 index 0000000..861847b --- /dev/null +++ b/acinclude.m4 @@ -0,0 +1,22 @@ +AC_DEFUN([TARGET_SHIZZLE], +[ + ARCH="" + + AC_MSG_CHECKING([target operating system]) + + case $target in + *-*-linux*) + ARCH=linux + LIBBURN_ARCH_LIBS= + ;; + *-*-freebsd*) + ARCH=freebsd + LIBBURN_ARCH_LIBS=-lcam + ;; + *) + AC_ERROR([You are attempting to compile for an unsupported platform]) + ;; + esac + + AC_MSG_RESULT([$ARCH]) +]) diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..86709bf --- /dev/null +++ b/bootstrap @@ -0,0 +1,10 @@ +#!/bin/sh -x + +aclocal +libtoolize --copy --force +autoconf + +# ts A61101 : libburn is not prepared for config.h +# autoheader + +automake --foreign --add-missing --copy --include-deps diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..0e027ef --- /dev/null +++ b/configure.ac @@ -0,0 +1,116 @@ +AC_INIT([libisofs], [0.5.0], [http://libburnia-project.org]) +AC_PREREQ([2.50]) +dnl AC_CONFIG_HEADER([config.h]) + +AC_CANONICAL_HOST +AC_CANONICAL_TARGET + +AM_INIT_AUTOMAKE([subdir-objects]) + +dnl A61101 This breaks Linux build (makes 32 bit off_t) +dnl http://sourceware.org/autobook/autobook/autobook_96.html says +dnl one must include some config.h and this was a pitfall. +dnl So why dig the pit at all ? +dnl AM_CONFIG_HEADER(config.h) + +dnl Making releases: +dnl LIBISOFS_MICRO_VERSION += 1; +dnl LIBISOFS_INTERFACE_AGE += 1; +dnl LIBISOFS_BINARY_AGE += 1; +dnl if any functions have been added, set LIBISOFS_INTERFACE_AGE to 0. +dnl if backwards compatibility has been broken, +dnl set LIBISOFS_BINARY_AGE and LIBISOFS_INTERFACE_AGE to 0. +dnl +dnl if MAJOR or MINOR version changes, be sure to change AC_INIT above to match +dnl +LIBISOFS_MAJOR_VERSION=0 +LIBISOFS_MINOR_VERSION=5 +LIBISOFS_MICRO_VERSION=0 +LIBISOFS_INTERFACE_AGE=0 +LIBISOFS_BINARY_AGE=0 +LIBISOFS_VERSION=$LIBISOFS_MAJOR_VERSION.$LIBISOFS_MINOR_VERSION.$LIBISOFS_MICRO_VERSION + +AC_SUBST(LIBISOFS_MAJOR_VERSION) +AC_SUBST(LIBISOFS_MINOR_VERSION) +AC_SUBST(LIBISOFS_MICRO_VERSION) +AC_SUBST(LIBISOFS_INTERFACE_AGE) +AC_SUBST(LIBISOFS_BINARY_AGE) +AC_SUBST(LIBISOFS_VERSION) + +dnl Libtool versioning +LT_RELEASE=$LIBISOFS_MAJOR_VERSION.$LIBISOFS_MINOR_VERSION +LT_CURRENT=`expr $LIBISOFS_MICRO_VERSION - $LIBISOFS_INTERFACE_AGE` +LT_REVISION=$LIBISOFS_INTERFACE_AGE +LT_AGE=`expr $LIBISOFS_BINARY_AGE - $LIBISOFS_INTERFACE_AGE` +LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE` + +AC_SUBST(LT_RELEASE) +AC_SUBST(LT_CURRENT) +AC_SUBST(LT_REVISION) +AC_SUBST(LT_AGE) +AC_SUBST(LT_CURRENT_MINUS_AGE) + +AC_PREFIX_DEFAULT([/usr/local]) +test "$prefix" = "NONE" && prefix=$ac_default_prefix + +AM_MAINTAINER_MODE + +AM_PROG_CC_C_O +AC_C_CONST +AC_C_INLINE +AC_C_BIGENDIAN + +dnl Large file support +AC_SYS_LARGEFILE +AC_FUNC_FSEEKO +AC_CHECK_FUNC([fseeko]) +if test ! $ac_cv_func_fseeko; then + AC_ERROR([Libisofs requires largefile support.]) +fi + +AC_PROG_LIBTOOL +AC_SUBST(LIBTOOL_DEPS) +LIBTOOL="$LIBTOOL --silent" + +AC_PROG_INSTALL + +AC_CHECK_HEADERS() + +AC_CHECK_MEMBER([struct tm.tm_gmtoff], + [AC_DEFINE(HAVE_TM_GMTOFF, 1, + [Define this if tm structure includes a tm_gmtoff entry.])], + , + [#include ]) + +THREAD_LIBS=-lpthread +AC_SUBST(THREAD_LIBS) + +TARGET_SHIZZLE +AC_SUBST(ARCH) +AC_SUBST(LIBBURN_ARCH_LIBS) + +dnl Add compiler-specific flags + +dnl See if the user wants aggressive optimizations of the code +AC_ARG_ENABLE(debug, +[ --enable-debug Disable aggressive optimizations [default=yes]], + , enable_debug=yes) +if test x$enable_debug != xyes; then + if test x$GCC = xyes; then + CFLAGS="$CFLAGS -O3" + CFLAGS="$CFLAGS -fexpensive-optimizations" + fi + CFLAGS="$CFLAGS -DNDEBUG" +else + if test x$GCC = xyes; then + CFLAGS="$CFLAGS -g -pedantic -Wall" + fi + CFLAGS="$CFLAGS -DDEBUG" +fi + +AC_CONFIG_FILES([ + Makefile + version.h + libisofs-5.pc + ]) +AC_OUTPUT diff --git a/libisofs-5.pc.in b/libisofs-5.pc.in new file mode 100644 index 0000000..4cf18c1 --- /dev/null +++ b/libisofs-5.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: libisofs +Description: ISO9660 filesystem creation library +Version: @VERSION@ +Requires: +Libs: -L${libdir} -lisofs +Cflags: -I${includedir}/libisofs diff --git a/src/image.h b/src/image.h new file mode 100644 index 0000000..bec1d8c --- /dev/null +++ b/src/image.h @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2007 Vreixo Formoso + * + * This file is part of the libisofs project; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See COPYING file for details. + */ +#ifndef LIBISO_IMAGE_H_ +#define LIBISO_IMAGE_H_ + + +struct IsoImage { + + +}; + +#endif /*LIBISO_IMAGE_H_*/ diff --git a/src/libisofs.h b/src/libisofs.h new file mode 100644 index 0000000..234ca11 --- /dev/null +++ b/src/libisofs.h @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2007 Vreixo Formoso + * + * This file is part of the libisofs project; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See COPYING file for details. + */ +#ifndef LIBISO_LIBISOFS_H_ +#define LIBISO_LIBISOFS_H_ + +typedef struct Iso_Tree_Node IsoTreeNode; + +/** + * Increments the reference counting of the given node. + */ +void iso_node_ref(IsoTreeNode *node); + + +#endif /*LIBISO_LIBISOFS_H_*/ diff --git a/src/tree.c b/src/tree.c new file mode 100644 index 0000000..c35d53f --- /dev/null +++ b/src/tree.c @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2007 Vreixo Formoso + * + * This file is part of the libisofs project; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See COPYING file for details. + */ + +#include "tree.h" +#include "libisofs.h" + + +/** + * Increments the reference counting of the given node. + */ +void iso_node_ref(IsoTreeNode *node) { + node->refcount++; +} diff --git a/src/tree.h b/src/tree.h new file mode 100644 index 0000000..0636200 --- /dev/null +++ b/src/tree.h @@ -0,0 +1,80 @@ +/* + * Copyright (c) 2007 Vreixo Formoso + * + * This file is part of the libisofs project; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See COPYING file for details. + */ +#ifndef LIBISO_TREE_H_ +#define LIBISO_TREE_H_ + +/* + * Definitions for the public iso tree + */ + +#include "libisofs.h" + +#include +#include +#include + +/** + * The type of an IsoTreeNode. + */ +enum IsoTreeNodeType { + LIBISO_DIR, + LIBISO_FILE, + LIBISO_SYMLINK, + LIBISO_SPECIAL, + LIBISO_BOOT +}; + +/** + * + */ +struct Iso_Tree_Node { + /* + * Initilized to 1, originally owned by user, until added to another node. + * Then it is owned by the parent node, so the user must take his own ref + * if needed. With the exception of the creation functions, none of the + * other libisofs functions that return an IsoTreeNode increment its + * refcount. This is responsablity of the client, if (s)he needs it. + */ + int refcount; + + /**< Type of the IsoTreeNode, do not confuse with mode */ + enum IsoTreeNodeType type; + + char *name; /**< Real name, supossed to be in UTF-8 */ + + mode_t mode; /**< protection */ + uid_t uid; /**< user ID of owner */ + gid_t gid; /**< group ID of owner */ + + /* TODO #00001 : consider adding new timestamps */ + time_t atime; /**< time of last access */ + time_t mtime; /**< time of last modification */ + time_t ctime; /**< time of last status change */ + + struct IsoDir *parent; /**< parent node, NULL for root */ + + /* + * Pointers to the doubled linked list of children in a dir. + * It is a circular list where the last child points to the first + * and viceversa. + */ + IsoTreeNode *prev; + IsoTreeNode *next; +}; + +struct IsoDir { + IsoTreeNode node; + + size_t nchildren; /**< The number of children of this directory. */ + struct IsoTreeNode *children; /**< list of children. ptr to first child */ +}; + +//void iso_node_unref(IsoTreeNode *node); + + +#endif /*TREE_H_*/ diff --git a/test/iso.c b/test/iso.c new file mode 100644 index 0000000..9fa0890 --- /dev/null +++ b/test/iso.c @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2007 Vreixo Formoso + * + * This file is part of the libisofs project; you can redistribute it and/or + * modify it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. See COPYING file for details. + */ + +#include "libisofs.h" + + +int main(int argc, char **argv) +{ + IsoTreeNode *node; + +} \ No newline at end of file diff --git a/version.h.in b/version.h.in new file mode 100644 index 0000000..f903ff0 --- /dev/null +++ b/version.h.in @@ -0,0 +1,3 @@ +#define LIBISOFS_MAJOR_VERSION @LIBISOFS_MAJOR_VERSION@ +#define LIBISOFS_MINOR_VERSION @LIBISOFS_MINOR_VERSION@ +#define LIBISOFS_MICRO_VERSION @LIBISOFS_MICRO_VERSION@